【发布时间】:2012-08-22 05:01:51
【问题描述】:
我在引用子类的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),我不确定我是否只是做错了,或者某些与属性相关的东西在这种情况下是否发生了变化。如果有人能告诉我如何正确操作,我将不胜感激。
【问题讨论】:
-
我猜你的第二个属性中缺少的左括号只是一个复制和粘贴错误,实际上并没有在你的代码中丢失?
-
复制粘贴错误! ;) 非常感谢!已更正!
标签: iphone objective-c ios xcode properties