无法在捆绑中加载NIB

时间:2011-07-26 09:26:58

标签: iphone objective-c xcode

* 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在bundle中加载NIB:'NSBundle(已加载)',名称为'ViewLecturer'

ViewLecturer *viewLecturer = [[ViewLecturer alloc]initWithNibName:@"ViewLecturer" bundle:nil];

[self.navigationController pushViewController:viewLecturer animated:YES];

我检查了文件类型,它是file.xib 双重检查xib名称是ViewLecturer但我仍然经常在设备上得到错误。 虽然在刺激器上工作正常。

4 个答案:

答案 0 :(得分:11)

ViewLecturer *viewLecturer = [[ViewLecturer alloc]
                              initWithNibName:@"ViewLecturer" bundle:nil];

你需要处理两件事:

  1. 此调用假设您有一个名为“ViewLecturer.xib”而不是“file.xib”的文件
  2. 确保该文件包含在应用包中。检查构建阶段>将资源复制到捆绑。

答案 1 :(得分:6)

确保使用正确的文件名,iOS区分大小写,而模拟器则不区分大小写。所以,如果它在模拟器中工作但在设备上没有,请检查文件名上的情况......

答案 2 :(得分:2)

刚刚找到了另一个原因。通常,当您向项目添加新文件时,xcode会自动将其添加到目标的“Copy Bundle resources”部分。

有时,如果您与其他人合作,project.pbxproj将不同步,此条目将被删除。修复是为了确保Resources文件夹中的所有文件(在发行版中都是必需的)也存在于“Copy Bundle resources”部分中,如果不是将它从资源拖到该部分。< / p>

享受!

答案 3 :(得分:0)

此问题与nibname有关。请检查笔尖名称。