7

当一些这样的代码:

objc_setAssociatedObject (
  obj,
  &key,
  val,
  OBJC_ASSOCIATION_RETAIN
);

我需要打电话给相关的吗

objc_setAssociatedObject (
  obj,
  &key,
  nil,
  OBJC_ASSOCIATION_RETAIN
);

释放留存价值?Objective-C 运行时是否会自动在其中dealloc或某处释放关联引用?

4

1 回答 1

14

当父对象被释放时,关联的对象将被释放。请参阅此处的文档,特别是此示例:

在第 1 点,字符串overview仍然有效,因为OBJC_ASSOCIATION_RETAIN策略指定数组保留关联的对象。然而,当数组被释放时(在第 2 点),数组被释放,overview因此在这种情况下也被释放。

于 2011-05-25T10:04:19.630 回答