Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSMenuItem-setTarget:它是否保留目标?_Cocoa_Macos_Retain_Nsmenuitem - Fatal编程技术网

Cocoa 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是弱的,这意味

NSMenuItem-setTarget:它是保留目标,还是应该显式保留它


我在这方面看到过相互矛盾的文件。我知道NSInvocation中有保留协议,但我不确定这是否适用于NSMenuItem,因为它不是从NSInvocation继承的。

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

只需查看标题:

@property(可空,弱)id目标;
或使用Swift:

弱var目标:AnyObject?{get set}

这里我们看到
target
弱的
,这意味着。在技术术语中,它既不增加也不减少参考计数。一旦您的目标因任何原因被解除分配,
NSMenuItem
也会丢失它。

最好使用相关页面底部的链接提交增强请求。快速查看一下-setTarget:API参考资料,可以确认这两种方式都没有说明,尽管应该这样说。