无法在iPhone设备上加载nib

And*_*rdi 25 iphone ios4

我正在尝试测试我正在iPhone上开发的应用.为此,我在Xcode上将目标从Simulator更改为Device.应用程序已正确上载到设备并且可以正常运行.显示主视图,但如果我尝试打开辅助视图,应用程序崩溃.

在iPhone日志上(我安装了iPhone配置实用程序以查看控制台[是从iPhone查看日志的唯一方法吗?])我可以看到此错误:

Could not load NIB in bundle
Run Code Online (Sandbox Code Playgroud)

但是,在模拟器上它工作正常.怎么了?有任何想法吗?

小智 62

我有同样的问题并修复它:

  1. 打开XCode目标
  2. 单击"构建阶段"选项卡
  3. 单击"复制包资源"部分
  4. 单击+
  5. 添加缺少的Nib文件


dea*_*rne 22

我发现有时设备区分大小写而模拟器不是.

你的xib的文件名是什么?


要么

尝试从模拟器卸载应用程序并再次安装 - 模拟器可能有一个旧文件遗留在以前的应用程序运行中 - 您是否在开发期间重命名/移动了xib?

  • 您对该设备区分大小写的答案是现场.我有一个名为XYZViewController.h/.M和一个名为XYZviewController厦门国际银行AA级 - 的情况下的不均造成应用程序时,我试图打开设备上的厦门国际银行在Simulator上运行,但崩溃的罚款.更改名称(在这种情况下为xib)可以解决问题. (4认同)
  • 烦人不是吧!很高兴我能帮助你. (2认同)

mar*_*ada 18

我有类似的问题,并得到同样的错误.结果我在"NIB名称:"下的属性面板中使用了xib文件的全名

不要使用"SomeViewController.xib",只使用不带".xib"扩展名的"SomeViewController".


ygg*_*raa 10

我在调用时遇到了同样的问题 initWithNibName:@"MyViewController"

将调用更改为initWithNibName:NSStringFromClass([MyViewController class]) 运行良好


dar*_*nde 9

你可以试试这些东西:

  1. 确保案例正确无误
  2. 使用不带".xib"扩展名的xib文件名
  3. 删除任何 - (破折号)或其他特殊字符,使用_(下划线)
  4. 从项目中删除x​​ib文件并添加回Xcode项目
  5. 检查构建设置并确保将部署更改为当前SDK


Fre*_*eer 5

就我而言,xib根本没有被复制到bundle中.一旦我将xib添加到应用程序目标的"复制包资源"步骤中,一切都很顺利.