-
swift - Protocols #1 (Syntax)swift 2021. 1. 12. 18:04
Protocols
- 형식에서 기본적으로 제공하는 멤버 목록
- 프로토콜은 형식에서 구현되어야 하는 멤버 목록이 있다. , 실제 구현은 프로토콜에 선언되어 있지 않다.
- class와 struct같은 형식들이 protocal에 잇는 멤버를 구현한다.
-> 프로토콜을 채용한다.
-> 프로토콜을 채용하면 프로토콜에 있는 필수 멤버들을 반드시 구현해야함
Syntax
- protocal 키워드로 선언
- uppercamelcase로 선언
- { } 사이에는 멤버 선언만 (구현 x)
- 상속을 지원한다 (class 상속과 동일)
- 다중 상속을 허용한다. (class는 단일 상속만 허용)
protocol Something { func doSomething() } // 프로토콜 채용 // 클래스가 다른 클래스를 먼저 상속하고 동시에 다른 프토토콜을 채용하고 있다면 항상 superClass이름을 먼저 나열해야 함 struct Size: Something { func doSomething() { // 마음대로 구현 } } // AnyObject를 사용하면 구조체나 열거형 오브젝트에서는 사용 불가능 protocol SomethingObject: AnyObject, Something { } // 구조체에서는 채용 불가능 //struct Value: SomethingObject { //} class Object: SomethingObject { func doSomething() { // SomthingObject에는 멤버가 없지만 채용한 Something에는 멤버가 있기때문에 필수 멤버를 구현해줘야 함 } }
'swift' 카테고리의 다른 글
swift - Protocols #3 (Method Requirements) (0) 2021.01.12 swift - Protocols #2 (Property Requirements) (0) 2021.01.12 swift - Extension #5 (Adding Subscript) (0) 2021.01.12 swift - Extension #4 (Adding Initializer) (0) 2021.01.12 swift - Extension #3 (Adding Method) (0) 2021.01.12