NSMenuItem -setTarget:它是保留目标,还是应该明确保留目标?
我在这方面看到了相互矛盾的文档。我知道NSInvocation中的retainArguments,但我不确定这是否适用于NSMenuItem,因为它不从NSInvocation继承。
答案 0 :(得分:3)
我不相信。通常,目标操作方法和委托属性不会保留它们设置的内容,因为它们不“拥有”它们的目标。
答案 1 :(得分:1)
只需查看标题:
@property (nullable, weak) id target;
或在Swift中:
weak var target: AnyObject? { get set }
在这里我们看到target
是weak
,表示it doesn't have control over the target's lifetime。用技术术语来说,它既不增加也不减少参考计数。一旦您的目标由于某种原因被重新分配,NSMenuItem
也会失去它。