我打算将添加到iVars
类别中。但是,我不确定何时调用objc_setAssociatedObject()
摆脱它们。
该类别有什么方法可以知道使用它的对象何时是objc_removeAssociatedObjects()
?
最佳答案
如果您设置与
objc_setAssociatedObject(self, &key, otherObject, OBJC_ASSOCIATION_RETAIN);
// or OBJC_ASSOCIATION_RETAIN_NONATOMIC
然后,
otherObject
被释放后,self
将自动释放。 (至少如果您使用ARC,但我认为手动引用计数也是正确的。)因此,您不必显式调用
objc_removeAssociatedObjects()
,除非您希望获得在释放主要对象之前,先删除添加的对象。