无法在捆绑包中加载 NIB
Posted
技术标签:
【中文标题】无法在捆绑包中加载 NIB【英文标题】:Could not load NIB in bundle 【发布时间】:2011-07-26 09:26:58 【问题描述】:* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle(已加载)”,名称为“ViewLecturer”
ViewLecturer *viewLecturer = [[ViewLecturer alloc]initWithNibName:@"ViewLecturer" bundle:nil];
[self.navigationController pushViewController:viewLecturer animated:YES];
我检查了文件类型,它是 file.xib。 仔细检查 xib 名称是 ViewLecturer 但我仍然经常在设备上收到错误。 不过在刺激器上效果很好。
【问题讨论】:
【参考方案1】:ViewLecturer *viewLecturer = [[ViewLecturer alloc]
initWithNibName:@"ViewLecturer" bundle:nil];
你必须注意两件事:
-
此调用假定您有一个名为“ViewLecturer.xib”而不是“file.xib”的文件
确保该文件包含在应用程序包中。检查构建阶段 > 将资源复制到捆绑包。
【讨论】:
它被称为 ViewLecturer.xib 。获取有关 xib 的信息将文件类型显示为“file.xib”(看到另一篇关于此的帖子)。该文件包含在“复制包资源”文件夹中的应用程序包中。尝试清理所有目标并在设备中重建,但仍然收到相同的错误。 无论如何,谢谢,我将文件重命名为另一个名称并将其改回并正常工作。我猜是一些错误。 +1 用于构建阶段评论。过去我只有一个目标,从来没有遇到过这个。但是现在我在一个有多个目标的项目中,由于某种原因,在添加文件时没有一个被检查过。谢谢! 我在升级 XCode 之前一直有效的项目中遇到了同样的错误。我偶然发现了这个交流,并尝试了重命名 XIB 并将其重命名的想法。我必须对我的两个 XIB(不仅仅是 MainWindow)都这样做,但它确实有效!谢谢,这让我发疯了一段时间。谢谢@user755053【参考方案2】:确保使用正确的文件名,ios 区分大小写,模拟器不区分。因此,如果它在模拟器上工作但在设备上不工作,请检查文件名上的情况......
【讨论】:
【参考方案3】:刚刚找到了另一个原因。通常,当您将新文件添加到项目时,xcode 会自动将其添加到目标的“复制捆绑资源”部分。
有时,如果您与其他人合作,project.pbxproj 将不同步,并且此条目将被删除。修复方法是确保 Resources 文件夹中的所有文件(发行版中需要)也存在于“复制捆绑资源”部分中,如果不只是将其从资源拖到该部分。
享受吧!
【讨论】:
【参考方案4】:这个问题与笔尖名称有关。检查笔尖名称。
【讨论】:
检查笔尖名称,相同,区分大小写。以上是关于无法在捆绑包中加载 NIB的主要内容,如果未能解决你的问题,请参考以下文章