升级到XCode 6后,NSClassFromString停止工作

时间:2014-09-22 04:49:02

标签: ios objective-c iphone xcode

尝试使用以下代码创建类时

id obj = [[NSClassFromString(className) alloc] init];

我现在结果为零。

当我升级到XCode 6时出现此问题。

以前,此代码适用于所有iOS平台(iPhone 6当然未经过测试)。没有进行任何代码修改。

问题出现在iPhone 5s和任何新型号上,无论iOS版本(使用iPhone 5s物理设备,iPhone 5s和iPhone6模拟器测试,运行iOS v7.03,v7.06,v7.1和v8) 0.0)

它不会出现在iPhone5或更早版本上(在iPad 3物理硬件,iPhone 5和iPhone4s模拟器以及运行iOS v7.03,v7.06,v7.1和v8.0上测试)

即:

  • 如果在iPhone5或更早版本上进行测试,它将起作用。
  • 如果在iPhone5s或更高版本上进行测试则不会。

其他注释:

  • 我们尝试加载的类是我们的自定义插件类 已经创造出来了。 (我们正在使用cocos2dx v3的插件系统)。
  • 该类在子项目中定义。
  • 我们在项目设置中设置了-ObjC链接器标志。

我使用以下代码获得相同的行为:

id obj = [[NSBundle mainBundle] classNamed: className];

有没有人对我如何解决这个问题有任何建议。

我已经看到一些提到NSClassFromString可能需要在类名前面添加模块名称(例如:使用@" ModuleName.ClassName")但是我还没有能够得到这种工作的任何组合/变化。

0 个答案:

没有答案