objective-c重命名/覆盖父属性?

时间:2014-07-05 19:33:23

标签: ios objective-c oop

是否有一种简单的方法来重命名父级属性或让新属性重用现有属性?

例如,我有一个父类定义如下:

@interface Parent : NSObject
    @property NSString* Name;
@end

如果我想要一个子类使用该Name属性但是要将其称为其他内容,我知道我可以这样做:

@interface Child : Parent
    @property NSString* ChildName;
@end

@implementation Child

- (void) setChildName:(NSString *)ChildName
{
    [super setName:ChildName];
}

- (NSString *) ChildName
{
    return [super Name];
}

@end

但是使用getter / setter有更简单的方法吗?这对我不起作用:

@interface Child : Parent
    @property (getter=Name, setter=setName) NSString* ChildName;
@end

1 个答案:

答案 0 :(得分:0)

Oren是正确的,你有一些与理解属性有关的工作,但你可以尝试设置这样的getter / setter:

@interface Child : Parent
    @property (getter=childName, setter=setChildName) NSString* Name;
@end

您可能还希望在属性描述中添加(强大的,非原子的)(或适用于您的上下文的任何内容)。