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 *btnUILabel *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 回答