这个有点难以解释。我有一组类引用。我想实例化其中一个类的成员,但我不想使用条件。
这是我的有效代码(下面是我想做的):
self.myClasses = [NSMutableArray arrayWithObjects:
[MyClassA class],
[MyClassB class],
[MyClassC class],
[MyClassD class],nil];
// later
int indexOfClassThatIWantAMemberOf = 2;
switch (indexOfClassThatIWantAMemberOf) {
case 0:
myObj = [[MyClassA alloc] init];
break;
case 1:
myObj = [[MyClassB alloc] init];
break;
case 2:
myObj = [[MyClassC alloc] init];
break;
case 3:
myObj = [[MyClassD alloc] init];
break;
default:
break;
}
上面的工作正常,但我宁愿有一行代码,像这样:
NSObjet *myOb = [[[self.myClasses objectAtIndex:i] alloc] init];
有人知道这是否可行吗?感谢您的帮助。
最佳答案
您是否尝试按照您的建议进行操作?这当然是可能的。
NSArray *array = @[[Class1 class], [Class2 class]];
id object = [[array[0] alloc] init];
关于ios - 从对类的引用实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26344007/