我打算将iVars
添加到objc_setAssociatedObject()
的类别中。但是,我不确定何时致电objc_removeAssociatedObjects()
去除它们。
类别可以知道何时使用它的对象是de-allocated
?
答案 0 :(得分:2)
如果您设置与
的关联objc_setAssociatedObject(self, &key, otherObject, OBJC_ASSOCIATION_RETAIN);
// or OBJC_ASSOCIATION_RETAIN_NONATOMIC
然后在otherObject
被释放时自动释放self
。 (至少如果你使用ARC,但我认为手动引用计数也是正确的。)
所以你不必明确地调用objc_removeAssociatedObjects()
,除非你想得到
在取消分配主对象之前删除添加的对象。