2009-12-09 26 views
17

在這本書中,「可可設計模式」的作者有時聲明爲只讀在@interface屬性:Objective-C的訪問聲明(只讀,讀寫等)

// .h 
@property (readonly, copy) NSArray *shapesInOrderBackToFront; 

再後來增加了一個無名類來實現(.M)文件是這樣的:

// .m 
@interface MYShapeEditorDocument() 
@property (readwrite, copy) NSArray *shapesInOrderBackToFront; 
@end 

任何想法,爲什麼?目前還不清楚這種方法比起初宣稱該屬性是「讀寫」還是更好,或者更爲必要。

回答

40

外部屬性將是隻讀的。在課堂內部,它將同時具有訪問器和setter。

編譯器在編譯器(.m)文件之外不可見。

+0

我明白了。好,謝謝!這是有道理的。 – RyJ 2009-12-09 20:23:17

+0

沒問題,很高興它有幫助。 – 2009-12-10 00:33:51

+1

如果以上所有內容都相同,但MYShapeEditorDocument擴展爲MYShapeEditorDocumentExtended。 MYShapeEditorDocumentExtended是否仍具有相同的外部讀取訪問權限,並且在內部爲MYShapeEditorDocumentExtended類進行了readwrite? – jdog 2012-10-30 18:33:32