씬디의 블로그

[Swift] AnyObject 프로토콜을 채택함으로써 클래스 타입을 제한할 수 있다? 본문

App/Swift 문법

[Swift] AnyObject 프로토콜을 채택함으로써 클래스 타입을 제한할 수 있다?

cyndi 2024. 5. 13. 21:04

Swift

 

AnyObject 프로토콜을 채택함으로써 클래스 타입을 제한할 수 있다?

 

왜?? 왜 굳이굳이 AnyObject 프로토콜을 채택해서 클래스 타입으로 제한하는걸까?

프로토콜의 채택을 클래스로 제한하는 것이 합리적이라면, 프로토콜을 클래스 전용으로 표시하여 더 나은 런타임 성능을 얻을 수 있다

 

프로토콜을 클래스 전용으로 표시하면 어떻게 런타임 성능을 얻을 수 있을까?

프로토콜을 클래스 전용으로 표시하면, 컴파일러가 클래스만 이 프로토콜을 충족한다는 것을 기반으로 프로그램을 최적화 한다고 한다

 

그래서 AnyObject라는 프로토콜을 채택하게 되는데

AnyObject 프로토콜은 모든 클래스 타입의 인스턴스만 담을 수 있다