【发布时间】:2013-01-24 08:04:21
【问题描述】:
我有一个包含不同类型对象的数组: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 这样的对象吗?
【问题讨论】:
-
如果对象已经在数组中,为什么要再次创建它们??
-
如果初始化器不同(UIButton),你必须if/else。
-
数组中的对象是实例还是类对象?
标签: objective-c cocoa-touch introspection