我目前正在尝试从NSClassFromString(NSString *)方法创建对象。
我希望能够实现以下目标......
NSClassFromString(stringType) *pageController = nil;
而不是以下......
UIViewController *pageController = nil;
换句话说,我想使用正确的类,而不是使用UIViewController。我希望能够实现上述目标,而无需键入确切的类。 我通常会像下面这样写它,但由于应用程序的扩展,它需要改变。
MPLandscapeImage *pageController = nil;
这是否可行,如果可行,我该如何完成所需?
答案 0 :(得分:3)
是。这样做。
Class cls = NSClassFromString(stringType);
// You have to use id here
id pageController = nil;
// And later
pageController = [[cls alloc] init];
答案 1 :(得分:0)
你真的不能这样做。你可以使用id类型。
但是,我会问你要完成什么,因为规避类型系统往往是一个坏主意(tm)。
答案 2 :(得分:0)
您正尝试在Objective C中使用泛型/模板。不会起作用。请改用id类型,它更适用于您要执行的操作。