AnyObject
AnyObject가 프로토콜이라는 것은 많은 분들이 아실 거에요.
근데 공식문서를 보니 AnyObject가 Protocol이 아니라 Type Alias라고 적혀있는거에요?

원래 프로토콜은

이렇게 Protocol이라고 적혀있잖아요..??
근데 AnyObject는 왜 Type Alias라고 적혀있을까? 라는 생각이 들었습니다. (1차 혼란)
그래서 AnyObject를 타고 들어가서 보니

typealias로 적혀있더라고요.
근데 좀 어색하지 않나요?

원래 typealias는 OOO = 타입으로 옆에 어떤 타입인지 적혀 있어야 합니다.
근데 AnyObject에는 아무것도 없는거에요... (2차 혼란)
이에 대해 검색해보니 이미 누가 스택오버플로우에 올렸더라고요.
알고보니 원래 코드에는 정상적으로 타입이 설정되어 있었습니다.

(Buildin 의 프로토콜..?인거 같은데 Builtin에 들어가 봐도 안 나와 있어서 정확히 알 수는 없네요. 프로토콜이라고 하니 프로토콜이겠죠?)
함께 알게된 점은 우리가 Xcode에서 보는 코드는 "전체 코드"가 아니라는 점입니다.
Xcode에서 보이는 코드들은 공개가 가능한 범위 내에서 제공하는 슈도 코드였습니다
그래서 위 코드처럼 문법에 맞지 않는 내용이 있어도 컴파일 에러가 발생하지 않고 돌아갈 수 있는 거에요.
마무리
얼렁뚱땅 마무리인데요 ㅎㅎ;
혹시나... 같은 것을 궁금해 하시는 분이 계실까 하여 공유하는 차원에서 포스팅합니다.
한글 정보는 없더라고요. ㅎㅎ
감사합니다!
참고
https://github.com/apple/swift/blob/main/stdlib/public/core/Policy.swift
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
AnyObject
AnyObject가 프로토콜이라는 것은 많은 분들이 아실 거에요.
근데 공식문서를 보니 AnyObject가 Protocol이 아니라 Type Alias라고 적혀있는거에요?

원래 프로토콜은

이렇게 Protocol이라고 적혀있잖아요..??
근데 AnyObject는 왜 Type Alias라고 적혀있을까? 라는 생각이 들었습니다. (1차 혼란)
그래서 AnyObject를 타고 들어가서 보니

typealias로 적혀있더라고요.
근데 좀 어색하지 않나요?

원래 typealias는 OOO = 타입으로 옆에 어떤 타입인지 적혀 있어야 합니다.
근데 AnyObject에는 아무것도 없는거에요... (2차 혼란)
이에 대해 검색해보니 이미 누가 스택오버플로우에 올렸더라고요.
알고보니 원래 코드에는 정상적으로 타입이 설정되어 있었습니다.

(Buildin 의 프로토콜..?인거 같은데 Builtin에 들어가 봐도 안 나와 있어서 정확히 알 수는 없네요. 프로토콜이라고 하니 프로토콜이겠죠?)
함께 알게된 점은 우리가 Xcode에서 보는 코드는 "전체 코드"가 아니라는 점입니다.
Xcode에서 보이는 코드들은 공개가 가능한 범위 내에서 제공하는 슈도 코드였습니다
그래서 위 코드처럼 문법에 맞지 않는 내용이 있어도 컴파일 에러가 발생하지 않고 돌아갈 수 있는 거에요.
마무리
얼렁뚱땅 마무리인데요 ㅎㅎ;
혹시나... 같은 것을 궁금해 하시는 분이 계실까 하여 공유하는 차원에서 포스팅합니다.
한글 정보는 없더라고요. ㅎㅎ
감사합니다!
참고
https://github.com/apple/swift/blob/main/stdlib/public/core/Policy.swift
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.