在Objective-C中创建一个未知类的实例

时间:2012-03-28 12:57:39

标签: objective-c xcode

如果您有一个已知的类类型字符串,例如@“NSString”,您将创建该类的实例,如下所示:

Class stringClass = NSClassFromString(@"NSString");
NSString* myString = [[stringClass alloc] init];

但是如果你不知道你收到的课程类型怎么办?我的意思是,你知道这将是一个有效的,你只是不知道哪一个......

是否仍然可以创建该类的实例,而不是id

1 个答案:

答案 0 :(得分:2)

如果您正在呼叫[[unknownClass alloc] init],您将始终创建实际的课程。您只是将类保存在id类型的变量中。但是这个类本身仍然属于它的类型。您还可以将字符串存储在id变量中,但仍使用字符串方法。 E.g:

id string = @"lalalala";
CGSize size = [string sizeWithFont: [UIFont systemFontOfSize: 12]];

这会回答你的问题吗?