如何从存储的 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]
我有一个函数可以返回 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]