0

UIButtons、UILabels、UITableViews など、さまざまな種類のオブジェクトを保持する配列があります。

if以下のような/else条件を使用せずに配列をループしながら、これらのオブジェクトを動的に作成する方法はありますか:

for (NSObject *obj in objectsArray)
{
    if ([obj isKindOfClass:[UIButton class]]) 
    {
         UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
         [self.view addSubview:btn];
    }
    else if ([obj isKindOfClass:[UILabel class]]) 
    {
        UILabel *lbl = (UILabel*)obj;
        [self.view addSubview:lbl];
    }
}

リフレクションなどを動的に使用してオブジェクトを作成できますUIButton *btnか?UILabel *lbl

4

1 に答える 1

0

あなたはどちらかを行うことができます

for (Class _class in classArray) {
    id object = [[_class alloc] init];
}

また

for (NSString *className in classNameArray) {
    id object = [[NSClassFromString(className) alloc] init];
}

そのため、クラス参照にインスタンスは必要ありません。

于 2013-01-24T09:09:42.590 に答える