Swift/꼬꼬무
Class-Only Protocol
leeyuno
2023. 7. 4. 17:26
프로토콜 선언 시 상속 리스트에 AnyObject를 추가하면 클래스에서만 채택하게 할 수 있습니다.
SomeClassOnlyProtocol은 클래스에서만 채택할 수 있고, 구조체나 열거형에서 채택시 컴파일 에러가 발생합니다.
예전에는 클래스 전용 프로토콜로 사용하기 위해서 상속 리스트에 class 라고 선언했었는데 찾아보니 Swift4 부터 AnyObject가 권장되는 것 같습니다.
class를 사용 불가능한건 아닌 것 같고 depreacted 경고가 발생하니까 AnyObject를 사용하는 걸로
Note
프로토콜을 준수하는 타입이 값 타입(Value Types)가 아니라 참조 타입(Reference Types) 체계인 경우 클래스 전용 프로토콜을 사용합니다.