[Swift] Delegate
2022. 10. 7. 17:22
iOS/Swift
Delegate란, 한국말로 위임이란 뜻이며, 한 object가 해야되는 행위를 다른 object로 위임(대신)하는 pattern 이다. iOS에서 delegate는 protocol로 구현이 된다. 우선, 이 protocol에 대해 간단히 살펴 보자 Protocol protocol은 정의를 하고 제시를 할 뿐 기능을 구현하지는 않는 하나의 타입이다. struct나, class는 이를 상속하는 것이 아닌 채택한다는 표현을 쓴다. 쉽게 말하자면, Protocol은 하나의 행동 규범 혹은 틀 이라고 생각하면 된다. 음식점을 가지고 예시를 들어보자! 기본적으로 음식점을 차리기 위해선 요리를 해야한다. 또한, 음식도 팔아야 한다 즉, 음식점을 protocol로 생각하자면, 요리를한다, 음식을 판다 ... 등등의 ..
[Swift] KVO (Key-Value-Observing)
2022. 10. 6. 17:20
iOS/Swift
KVO란, Object의 properties의 변경을 다른 Object에 알리기 위한 Cocoa programming pattern NSObject를 상속한 Object에서만 KVO 사용가능하다. 또한, NSObject에 KVO를 위한 기본적인 methods가 잘 구현되어 있기 때문에 Override 할 필요가 없다. KVO in Swift 우선, KVO를 사용하기 위해 NSObject를 상속 하여야 한다. 또한, Obeserve(관찰)할 property에 대해 @objc attribute와 dynamic modifier를 추가한다. class Address: NSObject { @objc dynamic var cityName: String init(cityName: String) { ... } } cl..
[Swift] KVC (Key-Value-Coding)
2022. 10. 5. 21:43
iOS/Swift
KVC란, Key-Value-Coding을 의미하며, 캡슐화된 객체에서 getter나 setter를 통한 직접 접근이 아닌 Key, KeyPath값을 통해 인스턴스의 value(property)에간접적으로 접근할 수 있도록 NSKeyValueCoding protocol에 의해 제공되는 machanism KVC에서 핵심인 Key와 KeyPath에 대해 알아보자 Key 우선 Key는 위에서 보았듯이, value(property)에 간접적으로 접근 할 수 있게 해준다. key값은 property의 이름과 같아야하며, ASCII 코드의 String이다 하지만, Key의 경우에 Objective-C의 문법으로 Swift에서 사용할 경우 Objective-C의 최상위 Root Class인 NSObject를 상속 받..
[Swift] Subscript
2022. 10. 5. 15:53
iOS/Swift
Subscript란, Collection, List, Sequence 등 집합의 특정 member elements에 간단하게 접근할 수 있는 Type properties subscript 사용으로 추가적인 methods 없이 특정 값에 할당하거나 가져올 수 있다. Array의 경우 []안의 index를 통해 member elements 접근 → 즉 index는 subsrcript var arr: [String] = ["가", "나", "다", "라"] arr[1] //get arr[1] = "가나다" //set → 실제 Array안에 선언되어 있는 subscript subscript(index: Int) -> Element { get set } Dictionary의 경우도 마찬가지로 key를 parame..