-
[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) 에 필요합니다. 개요 프로토콜..
-
[Swift] 프로토콜 총정리iOS/🟠 Swift 2021. 5. 22. 15:11
[ 프로토콜 개요 ] - https://woozzang.tistory.com/44 요약: 프로토콜은 요구사항이며, 프로토콜을 채택한 형식은 요구사항을 반드시 구현해야합니다. [ 속성 요구사항 ] - https://woozzang.tistory.com/45 요약: 프로토콜에서 속성은 가변성과 상관없이 반드시 var 키워드만 올 수 있습니다. [ 메서드 요구사항 ] - https://woozzang.tistory.com/48 요약: 메서드 요구사항의 규칙은 속성 요구사항과 유사합니다. [ 생성자 요구사항 ] - https://woozzang.tistory.com/53 요약: 생성자는 클래스의 경우 상속에 대비해 구현시 `required` 키워드를 붙여야 합니다. [ 서브스크립트 요구사항 ] protocol ..
-
Adopting a Protocol Using a Synthesized Implementation - ProtocolsiOS/🟠 Swift 2021. 1. 27. 23:40
스위프트는 여러 간단한 클래스들에게 자동적으로 `Equatable`, `Hashable` 그리고 `Comparable` 프로토콜 순응(conformance) 을 제공합니다. `conform to protocol`을 하기 위한 구현이 자동으로 제공된다는 의미입니다. 여러 간단한 클래스: Numbers, String 등이 있습니다. +) Numbers. String 은 Foundation Framework 의 primitive type 입니다. 이 통합된 구현을 사용한다는 것은 프로토콜 채택을 위한 별도의 반복적인 상용코드(boilerplate) 구현이 필요 없다는 것을 의미합니다. 통합된 구현 : synthesized implementation 프로토콜의 선언과 구현이 모두 되어있어서 채택하려는 타입에 선..
-
[Swift] 프로토콜 메서드 요구사항 (Method Requirements)iOS/🟠 Swift 2021. 1. 18. 23:03
참고 자료: Protocols - swift.org 속성과 마찬가지로 method 도 `static` 키워드를 통해 type method를 구현할 수 있습니다. 일반적인 instance method 와 type method처럼 정의하면 되지만, 프로토콜은 구현은 하지 않는 요구사항 이기 때문에 { } (curly brace) 에 해당하는 바디 부분은 없습니다. Syntax protocol SomeProtocol { // Type method // with no-input, no-return static func someTypeMethod() } protocol RandomNumberGenerator { // Instance Method // with no-input, Double type return f..
-
[Swift] 프로토콜 속성 요구사항 (Property Requirements)iOS/🟠 Swift 2021. 1. 15. 14:27
참고 자료: Protocols - swift.org var protocol Figure { var name: String { get set } } 프로토콜에서 속성 선언 앞에 붙는 `var` 키워드는 속성의 가변성 과는 관련이 없습니다. 프로토콜에서 속성은 무조건 앞에 `var` 키워드를 붙여야합니다. 또한 저장속성 혹은 계산속성만으로 구현을 강제할 수도 없습니다. 속성의 가변성은 변수 의 타입 뒤에 붙는 { get set } 의 조합 으로 결정됩니다. get , set 이 모두 있다면 읽기 쓰기를 모두 가능하게 구현해야 하고, get 만 있는 속성이라면 읽기만 가능해도 프로토콜을 따르는 것입니다. 읽기 쓰기를 모두 가능하게 구현해도 됩니다. gettable: 속성을 읽기 가능하게 만드는 것 settab..
-
[Swift] 프로토콜 개요 (Protocol Overview)iOS/🟠 Swift 2021. 1. 15. 14:13
참고 자료: Protocols - swift.org 개요 프로토콜은 요구사항입니다. 프로토콜에는 구현해야하는 멤버들의 목록이 나열되어 있습니다. 프로토콜을 채용한 형식은 요구사항을 반드시 모두 구현해야 합니다. " When you adopt protocol, you should conform to protocol." 이것을 Adopting Protocol 이라고 하며 `프로토콜을 따른다`, `프로토콜을 채용한다` 라고 표현합니다. 프로토콜에는 구현 내용은 들어가 있지 않고, 채용한 타입이 직접 구현을 합니다. 프로토콜은 프로토콜 간 상속을 지원하며, 클래스와 달리 다중 상속도 지원합니다. 즉, 하나의 프로토콜은 여러개의 프로토콜을 동시에 상속받을 수 있습니다. enum, struct, class 가 프로..