retain이 NSObject 프로토콜에서 선언되었습니다.NSObject NSObject와 NSProxy에서 모두 alloc이 선언되었지만 retain이 NSObject 프로토콜에 있습니다.
따라서 NSObject 클래스와 NSProxy 클래스가이를 구현합니다.
아직 NSProxy와 NSObject 클래스는 모두 alloc을 가지고 있습니다.
NSObject 프로토콜에서 isnt alloc이 선언 된 이유는 무엇입니까?
측면 질문 : NSObject 프로토콜은 인스턴스 메서드가 NSObject 클래스에있는 메서드의 클래스 버전을 저장하는 데에도 사용됩니다. NSObject 프로토콜에서 클래스와 인스턴스를 모두 선언하는 것을 막을 수 있습니까? 왜 그들을 나눠?
@protocol NSCopying
- (id)copyWithZone:(NSZone *)zone; //INSTANCE METHOD version of copyWithZone
@end
@interface NSObject <NSObject> {
Class isa;
}
...
+ (id)copyWithZone:(NSZone *)zone; //CLASS METHOD version of copyWithZone
건배