NSMenuItem -setTarget:它是否保留目标?

时间:2010-07-27 20:27:01

标签: cocoa macos retain nsmenuitem

NSMenuItem -setTarget:它是保留目标,还是应该明确保留目标?

我在这方面看到了相互矛盾的文档。我知道NSInvocation中的retainArguments,但我不确定这是否适用于NSMenuItem,因为它不从NSInvocation继承。

2 个答案:

答案 0 :(得分:3)

我不相信。通常,目标操作方法和委托属性不会保留它们设置的内容,因为它们不“拥有”它们的目标。

答案 1 :(得分:1)

只需查看标题:

@property (nullable, weak) id target;

或在Swift中:

weak var target: AnyObject? { get set }

在这里我们看到targetweak,表示it doesn't have control over the target's lifetime。用技术术语来说,它既不增加也不减少参考计数。一旦您的目标由于某种原因被重新分配,NSMenuItem也会失去它。