问题描述
|
当某些代码是这样的:
objc_setAssociatedobject (
obj,&key,val,OBJC_ASSOCIATION_RETAIN
);
我需要打相关电话吗
objc_setAssociatedobject (
obj,nil,OBJC_ASSOCIATION_RETAIN
);
释放保留的价值? Objective-C运行时是否会自动释放dealloc
或其他地方的关联引用?
解决方法
当父对象被释放时,关联的对象将被释放。请参阅此处的文档,特别是此示例:
在点1,字符串
overview
仍然有效,因为OBJC_ASSOCIATION_RETAIN
策略指定数组保留关联的对象。但是,在释放数组时(在第2点),释放overview
,因此在这种情况下也要释放。