[英]How can I create a new object of the same class as an object I already have?
我有一個包含不同類型對象的數組: UIButton
, UILabel
, UITableView
等等。
有什么方法可以在不使用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
類的對象?
你可以做
for (Class _class in classArray) {
id object = [[_class alloc] init];
}
要么
for (NSString *className in classNameArray) {
id object = [[NSClassFromString(className) alloc] init];
}
因此您不需要實例作為類引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.