2
假設我有一堂課。我想通過以下方式來聲明一個屬性:只讀插座?
- 從應該只讀如果訪問編程類之外;
- 應該可以使用插座從Interface Builder中設置值;
- (從課堂內部應該是可寫的,但我知道該怎麼做)。
的「解決方案」,我想出了是寫一時間設定:
但這制定者仍然可以從代碼(雖然只有有效一次)被調用,所以它的不是一個解決方案。
另一種方法是,以紀念伊娃爲IBOutlet中,使財產readonly
這樣的:
@interface MyClass : NSObject {
IBOutlet ClassA *a;
}
@property (readonly) ClassA *a;
@end
但根據this answer,這是一個可憐的風格,使得內存管理目前還不清楚。
任何想法?
欲瞭解更多信息階級擴展參見[Objective-C的編程語言](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocCategories.html%23//apple_ref/doc/uid/TP30001163-CH20-SW2)。 – ughoavgfhw 2011-05-16 21:56:35
這是否應該表示nib加載代碼會執行類似if([obj respondsToSelector:@selector(setA :)])[obj setA:a]'?如果是這樣,儘管沒有公開聲明setter,該條件是否會評估爲「YES」? – adubr 2011-05-16 22:03:09
第一個問題:我不確定,但我懷疑是的。第二個問題:肯定是的。 – 2011-05-17 00:00:05