如何从存储的类中实例化对象?

时间:2015-02-24 19:49:14

标签: objective-c class instantiation

我有一个函数可以给我一个类:

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

这个课程的回复如下:

return [MyFirstClass class];

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

根据您的代码,您似乎不是在为类创建类型。使用id

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

或者像这样明确地进行类型转换(注意MyClass不是你的实例变量,而是你的实际类名):

MyClass *foo = [[myClass alloc] init]