我指的是從一個子類的getter和setter時遇到性能問題屬性:的iOS:使用超類的getter和setter不是在Xcode工作了4.4
在基礎類中,我有一個屬性所謂listItems中使用了定製的setter:
@interface BaseList{
NSArray *_listItems;
}
@property (nonatomic, retain) NSArray *listItems;
@end
@implementation BaseList
@synthesize listItems = _listItems;
-(void)setListItems:(NSArray *)listItems
{
[_listItems release];
_listItems = [listItems retain];
//... some logic
}
@end
子類有與listItems中,如更具體的名稱的屬性地址:
@interface AddressList
@property (nonatomic, retain, getter = listItems, setter = setListItems:) NSArray *addresses;
@end
的地址屬性沒有在AddressList中的implmentation合成的,因爲它應該使用超類的listItems屬性的getter和setter。但是,設置後:
self.addresses = [NSArray array];
該屬性仍然爲零。有趣的是,我相信這與Xcode的早期版本很好。我目前正在使用Xcode 4.4(4.4.1),我不確定我是否只是做錯了,或者如果在這種情況下某些屬性相關的東西發生了變化。如果有人能告訴我如何正確地做到這一點,我將非常感激。
我猜你的第二個屬性中缺少的開放括號只是一個複製和粘貼錯誤,而不是真的在你的代碼中缺少? – DrummerB
複製粘貼錯誤! ;) 非常感謝你!更正! – Mobiletainment