retain(或strong)属性与从nswindowcontroller继承的属性不匹配

时间:2014-12-02 07:07:06

标签: objective-c xcode6 osx-yosemite

当我将我的应用程序(非ARC)与10.10 OS X兼容时,我收到了该属性的警告

@property (nonatomic, retain) MasterDocument *document;

MasterDocument的类型为NSDocument

我收到警告

  

保留(或强烈)'属性属性'文档'与从NSWindowController继承的属性不匹配。

还会向同一地产发出另一个警告,例如:

  

'原子'属性属性'文档'与从NSWindowController继承的属性不匹配。**

任何人都可以建议我接受此警告以及如何清除此警告。

1 个答案:

答案 0 :(得分:3)

您已创建了NSWindowController的子类,并且您正在添加父类已存在的属性。

您收到此警告是因为您正在更改现有属性的定义,尤其是您正在将内存管理从分配更改为保留。

第二个警告是因为您正在将访问权限从atomic更改为nonatomic

原始属性(根据文档)是:

@property(assign) id document

您可以省略重新声明属性并使用现有属性,或者至少使用相同的设置,例如:

@property (assign) MasterDocument *document;

当然注意,您将使用assign而不是retainstrong,因此请确保正确处理内存。