SWIFT91 Swift : 기초문법 [메서드 #3 타입 메서드] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 타입 메서드 Type Methods 타입 메서드는 타입 프로퍼티에서 알아봤던 것처럼 static 키워드를 사용한다. 메서드는 특정 타입의 인스턴스에 호출되는 메서드이고, 타입 자체에서 호출되는 메서드를 정의할 수 있다. 이런 종류의 메서드를 타입 메서드라고 한다. 인스턴스 메서드와 동일하게 func 키워드를 사용하며, 이 앞에 static 키워드를 작성하여 타입 메서드를 나타낸다. 타입 프로퍼티와 마찬가지로 클래스는 class 키워드를 사용하여 하위 클래스가 슈퍼클래스의 해당 메서드 구현을 override(재정의)할 수 있도록 할 수 있다. 타입 메서드는 인스턴스 메서드처럼 . 구문으로 호출되지만, 인스턴스로 메서드를 호출하는.. SWIFT/Grammar 2022. 1. 14. Swift : 기초문법 [메서드 #2 mutating] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 기초문법 [메서드 #1 인스턴스 메서드, self 프로퍼티] Mutating 메서드 구조체 또는 열거형의 인스턴스가 상수 let 으로 생성된 경우 해당 속성을 변경할 수 없다. 구조체를 만들 때 Swift가 상수 또는 변수와 함께 사용할지 여부를 알지 못하므로 기본적으로 안전한 접근 방식을 취하게 된다. Swift는 특별히 요청하지 않는 한 속성을 변경하는 메서드를 허용하지 않는다. 즉, 값 타입의 속성은 기본적으로 인스턴스 메서드 내에서 수정할 수 없다는 뜻이다. 만약 구조체 내부 속성 즉, 값 타입의 속성을 수정하려면 인스턴스 메서드에서 mutating 키워드를 사용해야 수정이 가능하다... SWIFT/Grammar 2022. 1. 14. Swift : 기초문법 [메서드 #1 인스턴스 메서드, self 프로퍼티] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 메서드(Method) Class(클래스), Struct(구조체), Enum(열거형)에 포함되어있는 '함수'를 메서드라고 한다. 메서드는 다른 말로 클래스 함수라고도 한다. Struct 는 내부에 함수를 가질 수 있으며, 이러한 함수는 필요에 따라 구조체의 프로퍼티를 사용할 수 있다. 구조체 내부의 함수는 methods 라고하지만 동일한 func 키워드를 사용한다. 클래스, 구조체 및 열거형은 특정 작업이나 기능을 캡슐화한 인스턴스 메서드에 타입 자체와 관련된 타입 메서드를 정의할 수 있다. class Person { //이 메서드는 person 타입에만 작동(적용)됩니다. func personGreeting() { greet(.. SWIFT/Grammar 2022. 1. 13. Swift : 기초문법 [프로퍼티#5 - 키 경로 KeyPath] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 프로퍼티#1 - 저장 프로퍼티 Swift : 프로퍼티#2 - 연산 프로퍼티 Swift : 프로퍼티#3 - 프로퍼티 옵저버(감시자) - didSet, willSet Swift : 프로퍼티#4 - 타입 프로퍼티 키 경로 KeyPath 객체의 값을 바로 꺼내오는 것이 아닌, Key 또는 KeyPath 를 이용해서 간접적으로 프로퍼티 위치 참조나 데이터를 가져오거나 수정하는 방법이다. 키 경로를 사용해 간접적으로 특정 타입의 어떤 프로퍼티 값을 가리켜야 할지 미리 지정해 두고 사용 가능. 여기서 경로는 프로퍼티 이름이라고 생각하면 된다. 키 경로는 역슬래시( \ ) 와 타입, 마침표( . ) 경로로.. SWIFT/Grammar 2022. 1. 10. Swift : 기초문법 [프로퍼티#4 - 타입 프로퍼티] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 기초문법 [프로퍼티#1 - 저장 프로퍼티] Swift : 기초문법 [프로퍼티#2 - 연산 프로퍼티] Swift : 기초문법 [프로퍼티#3 - 프로퍼티 옵저버(감시자) - didSet, willSet] 타입 프로퍼티 이제 까지 알아본 프로퍼티 라는 개념은 모두 Type을 정의하고 해당 타입의 인스턴스가 생성되었을 때 사용할 수 있는 인스턴스 프로퍼티라고 생각 하면 된다. 즉, 인스턴스 프로퍼티는 특정한 구조체, 클래스에 속하는 저장 프로퍼티와 연산 프로퍼티 이다. 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티를 타입 프로퍼티라고 한다. 인스턴스의 생성 여부와 관계없이 타입 프로퍼티의 값은.. SWIFT/Grammar 2022. 1. 10. Swift : 기초문법 [프로퍼티#3 - 프로퍼티 옵저버(감시자) - didSet, willSet] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 먼저 보고와 주세요! Swift : 기초문법 53 [프로퍼티#1 - 저장 프로퍼티] Swift : 기초문법 54 [프로퍼티#2 - 연산 프로퍼티] 프로퍼티 옵저버 프로퍼티 옵저버는 값이 변경되면 작업을 취할 수 있음. 프로퍼티 값이 변경될 때마다 호출. 변경되는 값이 현재 값과 같더라도 호출됨 상속받은 저장 프로퍼티 또는 연산 프로퍼티에도 적용됨 상속받지 않은 연산 프로퍼티에는 사용 불가(사용할 필요도 없음) : getter과 setter을 통해 감시자를 구현할 수 있기 때문 willSet : 값이 변경되기 직전에 호출하는 메서드 didSet : 메서드와 프로퍼티 값이 변경된 직후에 호출하는 메서드 프로퍼티 옵저버를 정의해서 .. SWIFT/Grammar 2022. 1. 9. Swift : 기초문법 [프로퍼티#2 - 연산 프로퍼티] 본 게시글은 yagom님과Zedd0202님의 게시글을 참고하여 작성되었습니다. 먼저 보고 와주세요! Swift : 기초문법 [프로퍼티#1 - 저장 프로퍼티] 연산 프로퍼티 getter / setter Computed Property 연산 프로퍼티 클래스, 구조체, 열거형에서 사용 가능 var로 선언해야 함 클래스, 구조체, 열거형에 값을 저장할 저장 프로퍼티가 반드시 하나 있어야 함 get, set을 동시에 구현 가능하고, 읽기 전용으로 get만 구현 가능 set의 매개변수를 생략한다면 반드시 newValue 키워드를 사용해야 함 직접적인 값을 저장하지 않고 값을 연산한 결괏값 특정 타입의 인스턴스에 사용되는 것을 뜻함 실제 값을 저장하는 프로퍼티가 아니라, 그때그때 값을 연산하고 값을 돌려주는 접근자 .. SWIFT/Grammar 2022. 1. 8. Swift : 기초문법 [프로퍼티#1 - 저장 프로퍼티] 프로퍼티 프로퍼티란 클래스, 구조체, 열거형에서 소속된 변수 및 속성 등을 불리는 개념 메서드는 특정 타입에 관련된 함수 변수나 상수, 함수 언제 어느 목적에 사용되는지에 따라 용어가 프로퍼티 또는 메서드로 불린다. 프로퍼티 종류 TIP 프로퍼티 종류 ➜ 저장 프로퍼티 Stored Property ➜ 연산 프로퍼티 Computed Property ➜ 타입 프로퍼티 Type Property ➜ 프로퍼티 감시자 Property Observers Stored Property 저장 프로퍼티 인스턴트의 변수나 상수를 의미 구조체와 클래스에서만 사용 가능 저장 프로퍼티는 사용 시점에 따라서 Lazy Stored Property(지연 저장 프로퍼티)라는 것도 있음 특정 타입의 인스턴스에 사용되는 것을 뜻함 Compu.. SWIFT/Grammar 2022. 1. 8. Swift : 기초문법 [UITextField] UITextField TextField는 기본적으로 다크 모드와 라이트 모드를 자동으로 구별한다. Text Input Traits Text 입력 type를 설정 Content Type semantic meaning을 나타냄. 이 프로퍼티를 사용하면, 사용자가 입력하는 내용에 대해 예상되는 semantic meaning에 대한 키보드 및 시스템 정보를 제공. (기본값 Nil) Capitalization 대문자와 관련된 프로퍼티. 일부 키보드 타입은 auto-capitalization을 지원하지 않는다. 특히 keyboardType프로퍼티의 값이 numberPad, phonePad, namePhonePad로 설정된 경우, 이 옵션은 무시됨. Correction 자동으로 교정해주는 프로퍼티. 스크립트 시스템이.. SWIFT/Grammar 2021. 9. 29. [Udemy] 섹션13 : Protocols, Networking, Delegate 패턴, JSON Parsing, UITextField 날씨 앱 목차 API를 활용해 JSON형식으로 된 날씨 정보 가져옴 protocol을 extension 해서 delegate패턴 사용 다크 모드 레이블 색상 Main.Stroyboard에서 inspector의 tint의 색상을 Label Color로 정해주게 되면 라이트 모드일 때는 검은색으로, 다크 모드일 때는 하얀색으로 색상의 컬러가 변하게 된다. 사용자가 지정한 Custom Color 일 때는 Assets에서 Light 모드일 때와 Dark 모드 일 때의 색을 정해줄 수 있다. 배경 이미지 단순히 텍스트 컬러만 바꾸는 것이 아닌 background의 image도 변경할 수 있다. 백터 이미지나 pdf이미지도 사용이 가능하다. Inspector > Scale > Single Appearance > Any, L.. SWIFT/Udemy iOS 2021. 9. 12. [Udemy] 섹션12: stepper, textField, segue 더치페이 계산기 목차 레이블 연결 1. @IBOutlet으로 아래의 Label들을 연결해준다. 2. @IBAction도 연결해준다. ResultsVC에 IBAction 및 IBOutlet 생성 1. Cocoa Touch 파일 생성 > ResultsViewController 라고 부르고 UIViewController 의 서브클래스로 지정. 2. Main.storyboard의 ResultsViewController를 연결시킴 3. ResultsVC에 IBOutlet 및 IBAction을 연결 버튼 toggle 활성화 isSelected라는 속성을 사용하여 버튼에 배경이 있고 선택된 것처럼 보이게 할 수 있다. @IBAction func tipChanged(_ sender: UIButton) { //버튼을 false 상태로 .. SWIFT/Udemy iOS 2021. 8. 12. [Udemy] 섹션11: Segue, Cocoa Touch Class, Optional Binding, BMI계산기 목차 Slider - Value : 슬라이더의 기본 값 - Minimum : 슬라이더의 최솟값 - Maximum : 슬라이더의 최댓값 Slider의 값 출력 ( 소수점 ) 소수점 출력 방법 ( 2 가지 ) 첫 번째, String(format: "%.2f", sender.value) 두 번째, sender.value는 Float 정수이기 때문에 Int(sender.value) 로도 가능 text 레이블로 연결 소수점 출력 방법을 let 상수로 지정한 후, Label.text로 호출 함. @IBAction func heightSliderBar(_ sender: UISlider) { let height = String(format: "%.2f", sender.value) heightLabel.text = "\.. SWIFT/Udemy iOS 2021. 8. 9. [Udemy] 섹션 10: iOS App Design Pattern Challenge https://github.com/appbrewery/Destini-LayoutPractice-iOS13 GitHub - appbrewery/Destini-LayoutPractice-iOS13: Learn to Code While Building Apps - The Complete iOS Development Bootcamp Learn to Code While Building Apps - The Complete iOS Development Bootcamp - GitHub - appbrewery/Destini-LayoutPractice-iOS13: Learn to Code While Building Apps - The Complete iOS Development Bootcamp github.com MVC .. SWIFT/Udemy iOS 2021. 8. 5. [Udemy] 섹션9: MVC 패턴, Struct, mutating ( 퀴즈 앱 ) 목차 목표 : MVC 패턴에 대해 알아본다. Quizzler Project main storyboard elements를 viewController로 연결해준다. class ViewController: UIViewController { @IBOutlet weak var questionLabel: UILabel! @IBOutlet weak var progressBar: UIProgressView! @IBOutlet weak var trueBtn: UIButton! @IBOutlet weak var falseBtn: UIButton! override func viewDidLoad() viewDidLoad는 앱을 실행할 때 딱 한 번만 실행되는 view이다. 만약 앱을 실행하자마자 퀴즈의 텍스를 보여주려면 다.. SWIFT/Udemy iOS 2021. 8. 2. [Udemy] 섹션8: Egg Timer / ProgressView ( Control Flow and Optionals ) 목차 목표 : Timer 사용, Optional의 이해, ProgressBar/View 사용 https://github.com/appbrewery/EggTimer-iOS13 Egg Timer Project main storyboard에서 View Controller Scene을 보면 우리는 아래에서 위로 본다고 생각하면 된다. 이미지를 보면 Image View가 Button 보다 아래 있으므로 Button은 Image View에 의해 숨겨지게 된다. Minimum Font Size 화면 사이즈가 각 아이폰 별로 다를 때 width/height의 크기가 줄어듬에 따라 label의 텍스트가 잘리는 경우 - 두 가지 방법 1. Inspector의 Lines를 0으로 설정 2. Autoshrink를 Minimu.. SWIFT/Udemy iOS 2021. 7. 31. 이전 1 2 3 4 5 6 7 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기