最近的 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 指令吗?