0

我有一个从 UIView 派生的对象,它是 AIItem,这个项目有 UIImageView *status_view,现在我需要从 AIItem 派生的另一个对象 AIAnotherItem,问题出在 status_view。

例如 :

AIItem 初始化方法

-(id)initWithName:(NSString *)name {
self = [super init];
if (self) {
    status_view = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,50,50)];
    status_view.image = [UIImage imageNamed:@"item_image.png"];
    [self addSubview:status_view];
}

}

AIAnotherItem 初始化方法

-(id)initWithName:(NSString *)name {
self = [super initWithName:name];
if (self) {
   status_view.image = [UIImage imageNamed:@"another_item_image.png"];
}
return self;
}

在 AIAnotherItem 我将另一个图像设置为 status_view 但它不会改变。问题是为什么?怎么做?

4

1 回答 1

0

不管这不起作用的机制是什么(我相信你会弄明白的),我相信你可能没有以正确的方式解决这个问题。

AIItem.h拥有一个空属性的类不是更合乎逻辑statusView吗?然后两个派生类(或同一个子类的实例)继承相同statusView但用不同的图像填充它?

我认为这将更接近于继承背后的哲学。

于 2012-10-10T21:15:56.483 回答