2013-01-24 175 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_。 –

相關問題