我打算将添加到iVars类别中。但是,我不确定何时调用objc_setAssociatedObject()摆脱它们。

该类别有什么方法可以知道使用它的对象何时是objc_removeAssociatedObjects()

最佳答案

如果您设置与

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


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

因此,您不必显式调用objc_removeAssociatedObjects(),除非您希望获得
在释放主要对象之前,先删除添加的对象。

10-08 15:40