2014-12-02 68 views
0

当我做了我的应用程序(非ARC),以10.10继承的财产匹配OS X兼容我得到这个警告的财产保留(或强)属性不从nswindowcontroller

@property (nonatomic, retain) MasterDocument *document;

其中MasterDocumentNSDocument类型。

我的得到的警告,

保留(或强)”属性在属性‘文件’不从NSWindowController继承的财产相匹配。

也越来越另一个警告像同一物业:物业“文件”不从NSWindowController继承的财产匹配

“原子”属性**

任何人都可以建议我得到此警告的原因以及如何清除此警告。

回答

3

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

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

第二个警告是因为你改变从atomicnonatomic访问。

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

@property(assign) id document 

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

@property (assign) MasterDocument *document; 

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

+0

'文档'是我的自定义对象,所以我需要使用它,而且我没有使用NSWindowController的继承属性。我可以像这样保留除“文件”之外的财产吗?希望这将清除它。你说的话? – 2014-12-02 07:20:41

+0

是的,你可以通过使用不同的属性名称来避免碰撞,可能是这样的:'@property(nonatomic,strong)MasterDocument * masterDocument;' – 2014-12-02 07:23:15

+0

感谢您的建议,您的答案可以解决并清除警告。 – 2014-12-02 07:27:27