2

(id)ボタン、画像などの6種類のUIModelを含むNSArrayがあります。

それらはすべて、私の基本モデルのサブクラス化です。例えば:

MyButtonModel : MyUIModel : NSObject

したがって、ビューで別の方法でスレッド化したいと考えています。

for(int i = 0 ; i < [_screenModel.MUIElements count] ; i++)
{
    id UIElement = [_screenModel.MUIElements objectAtIndex:i];
    [self checkWhatKindOfUIElement:UIElement];

}

-(void)checkWhatKindOfUIElement:(id)MUIElement;
{
    if([MUIElement isMemberOfClass:[ButtonModel class]])
        NSLog(@"button");
}

もちろん、そのように取得できますが、6つのifをチェックする必要がありますか? 他に方法はありませんか?

4

2 に答える 2

0

これは、派生クラスでも機能します。

-(void)checkWhatKindOfUIElement:(id)MUIElement;
{
    if([MUIElement isKindOfClass:[MyUIModel class]])
        NSLog(@"MyUIModel or derived");
}
于 2012-07-19T12:17:14.147 に答える