我有一个包含不同类型对象的数组: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 *btn
或UILabel *lbl
这样的对象吗?
答案 0 :(得分:0)
你可以做到
for (Class _class in classArray) {
id object = [[_class alloc] init];
}
或
for (NSString *className in classNameArray) {
id object = [[NSClassFromString(className) alloc] init];
}
因此您不需要实例用于类引用。