如何从存储的 Class 中实例化一个对象?

How to instantiate an object from a stored Class?

我有一个函数可以返回 Class:

- (Class)classForMyType:(NSString *)myType;

这个class是这样回馈的:

return [MyFirstClass class];

在我调用此函数的代码中,我可以像这样存储 Class:

Class myClass = [self classForMyType:@"foo"];

如何实例化myClass类型的变量?我想要类似 myClass *foo = [[myClass alloc] init] 的东西,但这不起作用。

如果你使用的是字符串,你可以像这样实例化它。

id object = [[NSClassFromString(@"NameofClass") alloc] init];

根据您的代码,您似乎没有对 class 进行类型转换。用 id

像这样实例化它
id foo = [[myClass alloc] init]

或像这样显式类型转换(注意 MyClass 不是您的实例变量,而是您的实际 class 名称):

MyClass *foo = [[myClass alloc] init]