Cocoa NSMenuItem-setTarget:它是否保留目标?
NSMenuItem-setTarget:它是保留目标,还是应该显式保留它Cocoa NSMenuItem-setTarget:它是否保留目标?,cocoa,macos,retain,nsmenuitem,Cocoa,Macos,Retain,Nsmenuitem,NSMenuItem-setTarget:它是保留目标,还是应该显式保留它 我在这方面看到过相互矛盾的文件。我知道NSInvocation中有保留协议,但我不确定这是否适用于NSMenuItem,因为它不是从NSInvocation继承的。我不相信它会。通常,目标操作方法和委托属性不会保留其设置,因为它们不会“拥有”其目标。只需查看标题: @property(可空,弱)id目标; 或使用Swift: 弱var目标:AnyObject?{get set} 这里我们看到target是弱的,这意味
我在这方面看到过相互矛盾的文件。我知道NSInvocation中有保留协议,但我不确定这是否适用于NSMenuItem,因为它不是从NSInvocation继承的。我不相信它会。通常,目标操作方法和委托属性不会保留其设置,因为它们不会“拥有”其目标。只需查看标题:
@property(可空,弱)id目标;
或使用Swift:
弱var目标:AnyObject?{get set}
这里我们看到
target
是弱的
,这意味着。在技术术语中,它既不增加也不减少参考计数。一旦您的目标因任何原因被解除分配,NSMenuItem
也会丢失它。最好使用相关页面底部的链接提交增强请求。快速查看一下-setTarget:API参考资料,可以确认这两种方式都没有说明,尽管应该这样说。