使用objc_setAssociatedObject将ivars添加到类别

时间:2013-04-09 09:30:49

标签: objective-c cocoa objective-c-category associated-object

我打算将iVars添加到objc_setAssociatedObject()的类别中。但是,我不确定何时致电objc_removeAssociatedObjects()去除它们。

类别可以知道何时使用它的对象是de-allocated

1 个答案:

答案 0 :(得分:2)

如果您设置与

的关联
objc_setAssociatedObject(self, &key, otherObject, OBJC_ASSOCIATION_RETAIN);
// or OBJC_ASSOCIATION_RETAIN_NONATOMIC

然后在otherObject被释放时自动释放self。 (至少如果你使用ARC,但我认为手动引用计数也是正确的。)

所以你不必明确地调用objc_removeAssociatedObjects(),除非你想得到 在取消分配主对象之前删除添加的对象。