2014-12-02 66 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