如何在Objective-C中测试对象是否是特定类的实例?假设我想看看对象a是b类的实例,还是类c,我该怎么做呢?
最近的SO 讨论使我感到困惑.NSMutableArray原型addObject:是
- (void)addObject:(id)anObject
Run Code Online (Sandbox Code Playgroud)
并id在objc.h中定义为
typedef struct objc_class *Class;
typedef struct objc_object {
Class isa;
} *id;
Run Code Online (Sandbox Code Playgroud)
当我将一个NSObject或子类添加到一个时NSMutableArray,它的保留计数会递增,当我从中删除它时,NSMutableArray它会递减.这是否意味着如果一个id type不是一个NSObject或一个子类被添加到一个NSMutableArray,它必须响应保留和释放消息?这个定义id似乎并不强迫这一点.它是一个客观的C指令,任何人id type都应该响应标准的内存管理消息吗?