在 NSObject 协议中声明了保留。
因此 NSObject 类和 NSProxy 类实现了它。
然而 NSProxy 和 NSObject 类都有一个 alloc。
为什么在 NSObject 协议中没有声明 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
干杯