2013-01-24 47 views
0

我一直持有不同类型对象的数组:UIButton S,UILabel S,UITableView S等如何创建与已有对象相同类的新对象?

是否有同时通过阵列,而不使用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使用反射或动态类似的对象:像下面的条件?

+2

如果对象已经在数组中,为什么再次创建它们? –

+0

如果初始化程序不同(UIButton),则必须if/else。 –

+0

数组实例或类对象中的对象是什么? –

回答

0

你既可以做

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

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

所以你不需要为类引用实例。

+0

这假定数组中的对象是表示类对象的字符串或类本身;从OP的代码中,情况并非如此:数组包含_instances_。 –

相关问题