在引用子类中的 getter 和 setter 时,我遇到了属性问题:
在基类中,我有一个名为 listItems 的属性,带有一个自定义设置器:
@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 的实现中没有合成addresses 属性,因为它应该使用super 的listItems 属性的getter 和setter。但是,设置后:
self.addresses = [NSArray array];
财产仍然为零。有趣的是,我相信这适用于早期版本的 Xcode。我目前正在使用 Xcode 4.4 (4.4.1),我不确定我是否只是做错了,或者某些与属性相关的东西在这种情况下是否发生了变化。如果有人能告诉我如何正确地做到这一点,我将不胜感激。