associate object tutorial "教程链接给了我一个清晰的对象-c运行时关联对象概念"
阅读下面的示例代码后,我有一个小问题。
- (void)setAssociatedObject:(id)object
{
objc_setAssociatedObject(self, @selector(associatedObject), object,OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (id)associatedObject
{
return objc_getAssociatedObject(self, @selector(associatedObject));
}
如果您在iOS中使用ARC,我们是否需要自行添加内存处理?
提前致谢
答案 0 :(得分:3)
您objc_setAssociatedObject
的来电将导致该对象被保留 - 即OBJC_ASSOCIATION_RETAIN_NONATOMIC
部分。这是指定的行为,当与之关联的对象被释放时,它也会自动释放。
因此,无论您是否正在使用ARC,都不需要进行任何进一步的内存处理(如果您希望此操作像copy
属性一样,请注意,您和# 39;显然需要添加复制,这在ARC和非ARC下看起来会有所不同。