-
Cocoa (Touch) 란iOS/🍎 Documentation 2021. 1. 25. 11:35
참고자료 : developer.apple.com `Cocoa` 는 OS X 에서 실행되는 앱을 개발하기 위한 도구인 Foundation 과 AppKit 프레임워크를 포함합니다. `Cocoa Touch` 는 iOS 에서 실행되는 앱을 개발하기 위한 도구인 Foundation 과 UIKit 프레임워크를 포함합니다. N O T E `Cocoa`는 Objective-C 런타임을 기반으로하고 NSObject 를 상속한 어떠한 클래스나 오브젝트를 가리키기 위해 보통 사용되었습니다. 추가적으로 `Cocoa` 혹은 `Cocoa Touch`는 프로그램에 입각한 인터페이스를 사용하는 앱 개발을 가리키기 위하여 사용되기도 합니다. 코코아 터치 기반 앱 개발 이라던가 The Frameworks Foundation 프레임워크는..
-
Bundle - FoundationiOS/🍎 Documentation 2021. 1. 25. 00:05
참고 자료 : developer.apple.com/documentation/foundation/bundle 찾아보게 된 이유 Apple 에서 제공하는 Food Tracker 앱을 구현하는 도중 @IBDesignable 을 사용하여 custom control을 Interface Builder가 실행할 수있게 해주었습니다. 그런데 Asset Catalog 에 저장한 이미지를 Interface Builder가 올바르게 불러올 수 있게 하려면 Catalog의 번들을 명시적으로 지정해주어야 한다고 합니다. 그래서 UIImage(named:) 대신 UIImage(named:in:compatibleWith:) 메서드를 사용하는데, 여기서 Bundle 의 개념을 몰라서 정리하게 되었습니다. Overview 디스크 내의..
-
Review of Implement a Custom Control (2) - Food TrackeriOS/🤖 App 2021. 1. 22. 19:05
Add Support for Interface Builder @IBDesignable Interface Builder는 view와 연결된 커스텀 코드에 대해서 전혀 모릅니다. 그래서 커스텀 코드를 반영하지 않은 채 인스턴스화하여 canvas에 그립니다. 커스텀 코드를 반영하게 하는 방법은 custom control code 앞에 @IBDesignable attribute 를 추가하는 것입니다. 이 Attribute 을 통해 Interface Builder 가 canvas에 view를 그릴때, 커스텀 코드를 올바르게 반영하여 그릴 수 있게 해줍니다. " This lets Interface Builder instantiate and draw a copy of your control directly in th..
-
Review of Implement a Custom Control (1) - FoodTrackeriOS/🤖 App 2021. 1. 21. 22:59
이 장에서 해본 것들 1. Custom source code 를 작성하고 그것을 stroyboard 내의 요소과 연결하기 2. Container view로서 UIStackView 사용하기 3. 코드로 view 들을 생성하기 4. 접근성 정보를 custom control 에 추가하기 5. @IBInspectable, @IBDesignable 사용하여 Interface Builder에서 custom view 를 띄우고, 조작하기 Create a Custom View Container View 인 UIStackView 안에 5개의 UIButton 을 넣어서 구현합니다. UIButton 은 서브클래싱하여 Custom control 을 사용합니다. 이 contol 을 통해 사용자는 meal ( 음식 ) 을 평가합..
-
Checking Type & Downcasting - Type CastingiOS/🟠 Swift 2021. 1. 21. 00:57
Checking Type /* item 이 Transportation 타입으로 Upcasting 되어 있는 상황 */ ... if item is Metro { } else if item is Bus { } ... Type check operator ` is ` 를 사용하여 인스턴스가 특정 subclass 타입인지 아닌지 확인합니다. 인스턴스가 특정 subclass 타입이 맞다면 true 를 , 아니라면 false 를 반환합니다. Type Casting 은 타입을 다른 타입으로 아예 바꾸는 것이 아니라 다른 타입으로 취급만 하는 것이므로, is 연산자로 sublcass인지 아닌지를 확인 할 수 있겠습니다. Downcasting # as? # as! 어떤 수퍼 클래스 타입을 가진 인스턴스는 사실 서브클래스 ..
-
Type Casting Overview - Type CastingiOS/🟠 Swift 2021. 1. 21. 00:42
Type Casting 은 두 가지를 가리킵니다. 1. 인스턴스의 타입을 확인하는 수단입니다. 여기에는 ` is ` 키워드를 사용합니다. 2. 인스턴스를 그 클래스의 상속계층의 Superclass 혹은 Subclass로 취급하게 합니다. 여기에는 ` as ` 키워드를 사용합니다. 여기서 다른 타입으로 취급한다 (treat) 는 의미는, 기존 인스턴스의 타입을 변경하는 것과는 차이가 있습니다. 전자는 Type Casting 을 가리키고, 후자는 Type Conversion을 가리킵니다. 추가적으로 프로토콜도 하나의 독립적인 타입이고, 상속이 가능하여 상속계층이 형성되므로 Type Casting을 활용할 수 있습니다. 결국 Type Casting 은 Class 와 Protocol에 한정하여 사용할 수 있습니..
-
-
[iOS] Equatable 이란?iOS/🍎 Documentation 2021. 1. 20. 16:57
Equatable 은 값의 동등성 비교 기능을 제공하는 타입입니다. 엥? 프로토콜인데 왜 타입이냐? 스위프트에서는 프로토콜도 타입입니다! 😲 관련 글: Protocol as Types 스위프트에서 값의 같음은 == (equal to) 와 != (not equal to) 연산자로 비교합니다. Equatable 프로토콜을 채택한 타입은 == 와 != 연산자를 사용할 수 있습니다. Swift의 primitive type 들은 Equatable 을 자동으로 지원합니다. (Int, Double, String ... 등) 그렇다면 커스텀 타입인 enum, struct, class 의 경우는 어떨까요? 하나씩 보겠습니다.👇🏻👇🏻👇🏻 enum 관련 글 : emumeration 총정리 연관 값이 없는 기본 열거형 형태일..