Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Macos NSWindow属性集具有assign属性而不是strong属性_Macos - Fatal编程技术网

Macos NSWindow属性集具有assign属性而不是strong属性

Macos NSWindow属性集具有assign属性而不是strong属性,macos,Macos,我注意到Mac应用程序模板创建了以下内容: @接口AppDelegate:NSObject @属性(分配)窗口*窗口 根据ARC指南,所有顶级对象都应该使用强属性,但这是使用赋值属性。有人能解释一下原因吗?一个窗口通常由文件的所有者“拥有”,通常是您的应用程序实例(对于主nib)或NSWindowController的实例,不一定是应用程序委托或窗口委托。这就是为什么在委托类中引用是强引用是不合适的 在Mac OS/X 10.7中,NSWindow(以及其他几个Cocoa类)不支持通过ARC进行

我注意到Mac应用程序模板创建了以下内容:

@接口AppDelegate:NSObject

@属性(分配)窗口*窗口


根据ARC指南,所有顶级对象都应该使用强属性,但这是使用赋值属性。有人能解释一下原因吗?

一个窗口通常由
文件的所有者“拥有”
,通常是您的
应用程序实例(对于主nib)或
NSWindowController的实例,不一定是应用程序委托或窗口委托。这就是为什么在委托类中引用是强引用是不合适的

在Mac OS/X 10.7中,
NSWindow
(以及其他几个Cocoa类)不支持通过ARC进行管理,因此
NSWindow
的声明属性必须是
assign
,而不是
strong
。有关更详细的讨论,请参阅和文档。基本答案是,对于覆盖
release
retain
方法的对象,不能使用弧管理引用


在10.8中,NSWindow似乎不在该列表中,但Xcode仍在生成
assign
属性,而不是
weak

我猜这是模板中的一个缺陷。这不是第一次!不要仅仅因为代码在Apple模板中就信任它。因此,在10.8上将其更改为
,应该是安全的。如果Apple tech文档(请参见上面的转换为ARC)是准确的,则可以将其更改为弱。