簡體   English   中英

如何創建與已經擁有的對象相同類的新對象?

[英]How can I create a new object of the same class as an object I already have?

我有一個包含不同類型對象的數組: UIButtonUILabelUITableView等等。

有什么方法可以在不使用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類的對象?

你可以做

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM