Objective c NSClassFromString思想
我目前正在尝试从NSClassFromString(NSString*)方法创建对象 我希望能够实现以下目标Objective c NSClassFromString思想,objective-c,cocoa-touch,uiviewcontroller,nsstring,nsobject,Objective C,Cocoa Touch,Uiviewcontroller,Nsstring,Nsobject,我目前正在尝试从NSClassFromString(NSString*)方法创建对象 我希望能够实现以下目标 NSClassFromString(stringType) *pageController = nil; UIViewController *pageController = nil; 而不是下面的 NSClassFromString(stringType) *pageController = nil; UIViewController *pageController = nil;
NSClassFromString(stringType) *pageController = nil;
UIViewController *pageController = nil;
而不是下面的
NSClassFromString(stringType) *pageController = nil;
UIViewController *pageController = nil;
换句话说,我想使用正确的类,而不是使用UIViewController。我希望能够实现上述目标,而不必键入确切的类。
我通常会这样写,但由于应用程序的扩展,它需要更改
MPLandscapeImage *pageController = nil;
这可能吗?如果可能的话,我如何才能完成所需的工作?你真的不能这样做。您可以为此使用id类型 然而,我想问你想要实现什么,因为绕过类型系统通常是个坏主意(tm) 是的。这样做
Class cls = NSClassFromString(stringType);
// You have to use id here
id pageController = nil;
// And later
pageController = [[cls alloc] init];
你试图在目标C中使用泛型/模板,这是行不通的。改为使用id类型,它更适用于您正在尝试的操作。使用id类型时,它无法按需要工作!我相信应该有另一种方法来实现这一点……使用上面的方法,一切都正常了,
id
类型处理视图的方式存在问题。