ios - 从对类的引用实例化

标签 ios objective-c

这个有点难以解释。我有一组类引用。我想实例化其中一个类的成员,但我不想使用条件。

这是我的有效代码(下面是我想做的):

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/

相关文章:

ios - AVCaptureVideoPreviewLayer 未填满全屏

ios - NSDictionaryM setObject :forKey: EXC_BAD_ACCESS crash

iphone - 替换变量子串

ios - iOS 11 以下检查 CMMotionActivityManager 的授权

iOS: subview Controller 和自动布局

objective-c - 从 NSDocument 类外部保存 cocoa 文档

objective-c - 界面生成器和预处理器

iphone - 检索 NSData 时的 EXC_BAD_ACCESS

objective-c - ios:防止 ScrollView 缩放超出范围

ios - 创建 ios 绘画应用程序