我有一種情況,我不想爲一組屬性合成實例變量(我通過用戶默認值和鑰匙串管理它們)。具有自定義getter的只讀屬性是否具有合成的實例變量?
如果我有以下,_loginUsername
將肯定合成:
@property (nonatomic, readonly) NSString *loginUsername;
而且我知道如果我有下面的實例變量不會被合成的,因爲聲明說:「我要照顧它自己「:
@property (nonatomic, getter = loginUsername, setter = setLoginUsername) NSString *loginUsername;
是行爲同樣具有自定義的getter?:
@property (nonatomic, readonly, getter = loginUsername) NSString *loginUsername;
只讀屬性
是否有_loginUsername
合成最終財產聲明?我相當確信不會有,但我試圖更好地掌握財產屬性,所以想確保我沒有失去方向。
解釋在編譯時是否知道這個獎勵點(沒有作弊和檢查Xcode!)。
我的執行文件中沒有任何@synthesize
語句。
等等,什麼? –
@ChrisWagner - 好的,你可以檢查Xcode :)但我想知道它是如何知道預運行時。我想只是簡單的靜態分析 - 我想不出更復雜的場景,這會在編譯時導致不確定性。 – bdalziel
我不知道具體情況是否足以回答這個問題,但我會用'@property(nonatomic ,只讀,getter = loginUsername)NSString * loginUsername;'我仍然可以在我的實現中編譯具有'_loginUsername = nil;'的代碼。此外,當我有'@property(nonatomic,只讀,getter = loginUsername,setter = setLoginUsername :) NSString * loginUsername時,我仍然可以做到這一點'''好像文件是謊言! –