Ios NSClassFromString在升级到XCode 6后停止工作
尝试使用以下代码创建类时Ios NSClassFromString在升级到XCode 6后停止工作,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,尝试使用以下代码创建类时 id obj = [[NSClassFromString(className) alloc] init]; 我现在的成绩是零 这个问题在我升级到XCode 6时出现 以前,这段代码适用于所有iOS平台(当然,iPhone 6以前没有经过测试)。没有对代码进行任何修改 该问题出现在iPhone 5s和任何较新型号上,无论iOS版本如何(使用iPhone 5s物理设备以及运行iOS v7.03、v7.06、v7.1和v8.0的iPhone 5s和iPhone 6模拟器进行
id obj = [[NSClassFromString(className) alloc] init];
我现在的成绩是零
这个问题在我升级到XCode 6时出现
以前,这段代码适用于所有iOS平台(当然,iPhone 6以前没有经过测试)。没有对代码进行任何修改
该问题出现在iPhone 5s和任何较新型号上,无论iOS版本如何(使用iPhone 5s物理设备以及运行iOS v7.03、v7.06、v7.1和v8.0的iPhone 5s和iPhone 6模拟器进行测试)
它不会出现在iPhone5或更早版本上(在iPad3物理硬件、iPhone5和iPhone4s模拟器上进行测试,并运行iOS v7.03、v7.06、v7.1和v8.0)
即:
- 如果在iPhone5或更早版本上进行测试,它将起作用李>
- 如果在iPhone5s或更高版本上进行测试,则不会
- 我们试图加载的类是一个自定义插件类 创造了。(我们正在使用cocos2dxv3中的插件系统)李>
- 该类在子项目中定义李>
- 我们在项目设置中设置了-ObjC链接器标志
id obj = [[NSBundle mainBundle] classNamed: className];
有人对我如何解决这个问题有什么建议吗
我看到有人提到NSClassFromString可能需要在类名前加上模块名(例如:使用@“ModuleName.ClassName”),但我无法得到任何组合/变体。它不工作的所有设备都是64位的,这很可疑。。。但可能是巧合,您是否添加了arm64作为平台?还要验证(NSClassFromString(className))是否有效。啊,我们的体系结构是arm64/armv7。另外,NSClassFromString(className)调用返回一个nil(即:不带alloc+init)