最近的 SO讨论让我感到困惑。NSMutableArray 的原型addObject:是
- (void)addObject:(id)anObject
并id在 objc.h 中定义为
typedef struct objc_class *Class;
typedef struct objc_object {
Class isa;
} *id;
当我将 NSObject 或子类添加到 anNSMutableArray时,它的保留计数会增加,而当我从 an 中删除它时,NSMutableArray它会减少。这是否意味着如果将id type不是一个NSObject或子类的一个添加到一个NSMutableArray,它必须响应保留和释放消息?的定义id似乎并没有强迫这一点。任何人id type都应该响应标准内存管理消息是一个客观的 C 指令吗?