【问题标题】:object c runtime associate object对象 c 运行时关联对象
【发布时间】:2014-04-22 21:59:22
【问题描述】:

associate object tutorial “教程链接让我对object-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,是否需要我们自己添加内存处理?

提前致谢

【问题讨论】:

    标签: memory-management automatic-ref-counting objective-c-runtime associated-object


    【解决方案1】:

    您必须调用objc_setAssociatedObject 将导致对象被保留——这就是OBJC_ASSOCIATION_RETAIN_NONATOMIC 部分。这是指定的行为,它也会在与其关联的对象被释放时自动释放。

    因此,无论您是否使用 ARC,您都不需要进行任何进一步的内存处理(需要注意的是,如果您希望它像 copy 属性一样,您显然需要添加复制,在 ARC 和非 ARC 下看起来会有所不同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多