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が異なる画像で埋める 2 つの派生クラス (または同じサブクラスのインスタンス) は?

これは、継承の背後にある哲学により密接に対応すると思います。

于 2012-10-10T21:15:56.483 に答える