NSClassFromString Idea

时间:2011-08-01 13:33:05

标签: objective-c cocoa-touch uiviewcontroller nsstring nsobject

我目前正在尝试从NSClassFromString(NSString *)方法创建对象。

我希望能够实现以下目标......

NSClassFromString(stringType) *pageController = nil;

而不是以下......

UIViewController *pageController = nil;

换句话说,我想使用正确的类,而不是使用UIViewController。我希望能够实现上述目标,而无需键入确切的类。 我通常会像下面这样写它,但由于应用程序的扩展,它需要改变。

MPLandscapeImage *pageController = nil;

这是否可行,如果可行,我该如何完成所需?

3 个答案:

答案 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类型,它更适用于您要执行的操作。