-
-
[iOS] CodingKey 란?iOS/🍎 Documentation 2021. 5. 25. 01:34
선수 지식 : Codable 안녕하세요🐶 오늘은 Codable 프로토콜에서 커스텀 키 매핑 등의 용도로 사용하는 CodingKey 프로토콜에 대하여 다루어 보려고 합니다. 공식 문서를 살펴보던 중 이 프로토콜에 대한 설명이 나와있어 이것을 정리해보겠습니다. 막상 CodingKey 문서에는 설명이 전혀 없었던... struct Coordinate: Codable { var latitude: Double var longitude: Double var elevation: Double enum CodingKeys: String, CodingKey { case latitude case longitude case elevation } } 위 코드와 같이, Codable 타입은 CodingKeys 라는 이름을 가진 ..
-
[iOS] Object Graphs 와 Archives, 그리고 SerializationiOS/🍎 Documentation 2021. 5. 24. 18:54
이 글을 통해 알게 되는 것들 Apple 공식 문서에 등장하는 Object Graph 이란? Archives 란? Serialization 이란? 개요 제가 Object Graph 를 검색하게 된 계기는 NSKeyedArchiver 의 타입 메서드인 archivedData(withRootObject:requiringSecureCoding:) 의 설명에서Object Graph 라는 단어를 발견했기 때문입니다. 이것은 플랫폼에 종속적인 용어가 아니기 때문에 여러 객체 간의 관계를 가리키는 가리키는 그래프 라는 정도의 대략적인 개념은 알고 있었지만, 애플 공식 문서에서 설명하는 자료를 찾고 싶었습니다. 마침 그런 문서가 있었고, 이 문서를 정리하게 되었습니다. 추가적으로 Archives 와 Serializat..
-
[iOS] does not implement methodSignatureForSelector: -- trouble aheadiOS/🛠 이슈와 궁금증 2021. 5. 24. 01:49
2021-05-24 01:46:51.846363+0900 DataPersistence[26819:4680912] *** NSForwarding: warning: object 0x6000004e77b0 of class 'DataPersistence.Language' does not implement methodSignatureForSelector: -- trouble ahead 문제가 발생한 클래스에 NSCoding 프로토콜을 채택 (conforming to NSCoding Protocol)하면 해결된다. 위 로그에서는 Language 클래스에서 발생했다. 끝! 🤖🟢[우짱의 iOS 블로그]🔵💻 iOS를 공부하면서 배운 내용을 기록하고 있습니다.
-
[iOS] NSCoding 이란? (feat. 인코딩, 디코딩, 아카이빙)iOS/🍎 Documentation 2021. 5. 23. 20:48
안녕하세요. 오늘은 공식문서에서 설명하는 NSCoding 를 공부해보겠습니다🐶 NSCoding protocol NSCoding NSCoding은 클래스가 encoding 과 decoding 되는 것을 가능하게 해주는 프로토콜입니다. 다시 말하면, NSCoding 을 채택한 클래스는 encoding 과 decoding 이 가능해집니다. 인코딩은 기존의 형식을 다른 형식으로 변환하는 것을 가리킵니다. 예를 들어 Swift 의 Struct 인스턴스를 JSON 형태의 문자열로 변환시키는 것은 JSON Encoding 이라고 부를 수 있습니다. 디코딩은 그 반대입니다. 그리고 Encoding 과 Decoding 은 아카이빙(Archiving) 과 디스트리뷰션(Distribution) 에 필요합니다. 개요 프로토콜..
-
[iOS] KVO 란? (Key Value Observing)iOS/🤖 App 2021. 5. 22. 19:55
1차 수정: 2021/06/08 안녕하세요. 이번 시간에는 KVO 에 대해 공부해보겠습니다🐶 Observing 이라는 단어는 감시한다는 의미를 가지고 있죠. 그렇다면 KVO는 무엇을 감시하는 것일까요? 바로 다른 오브젝트의 속성입니다. KVO 는 B 라는 오브젝트의 속성 값이 변경되었을 때, A 라는 오브젝트가 알게 되는 것입니다. KVO는 모델 레이어와 뷰 레이어 같이 논리적으로 분리되어 있는 오브젝트간 메시지 전달에 유용합니다. 예를 들어 모델 레이어에서 값이 변경되면, 감시하고 있던 뷰 레이어에게 전달되어 변경에 대응할 수 있는 것입니다. 감시할 속성에 표시하기 class MyObjectToObserve: NSObject { @objc dynamic var myDate = NSDate(timeInt..