如:得到一个NSString类型的变量x, 我们知道x是一个类的名字,比如可能是 UILabel, 也可能是UINavigationController,接下来我们需要实例化他们,如何做, 看看下面这几个案例。
1.已知类名@"SomeClassName",初始化此类的一个实例:
Class someClass = NSClassFromString(@"SomeClassName"); id obj = [[someClass alloc] init];
比如想初始化个UILabel
id obj = [[NSClassFromString(@"UILabel") alloc] init]; NSLog(@"What is obj : %@", obj);
类似的还有:
2.已知对象someObject,初始化一个和someObject相同类型的:
Class someClass = [someObject class]; id obj = [[someClass alloc] init];
3.已有类SomeClass,初始化SomeClass的一个实例:
Class someClass = [SomeClass class]; id obj = [[someClass alloc] init];
其实和[[SomeClass alloc] init]一样,意义不大
最后:
Cocoa中所有的类都是Class的实例,类可以接受alloc消息。