无法在捆绑中加载NIB:'NSBundle'

问题描述 投票:17回答:11

下面列出的错误是什么?

2011-02-23 21:24:12.218成功[7238:207] *由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:'无法在bundle中加载NIB:'NSBundle </ Users / jimkillen12 / Library / Application Support / iPhone模拟器/ 4.2 /应用程序/ BAA5E0E7-AF12-4301-A4F8-1B9797C9E82D / Success.app>(已加载)'名称为'MainWindow-iPad''

ipad simulator
11个回答
33
投票

项目中缺少一个NIB文件,添加所需的NIB文件:

在构建阶段

  1. 展开Copy Bundle Resources
  2. 点击底部的+
  3. 添加所需的NIB文件。

通过Shift+Cmd+K清理你的构建,然后运行。

附:同时确保在调用initWithNibName:@"ViewNameController"时使用NIB文件的精确拼写

可能您已使用小写字母在呼叫中命名了您的NIB,或者您可能还包含了不需要的扩展名.xib。


0
投票

另一个可能的问题:您在iOS 5上使用Base Localization(注意,它在iOS模拟器上有效,但在设备上没有),但仅从iOS 6开始支持。

有关更多信息,请参阅:Could not load nib in bundle base internationalization


0
投票

如果您尝试在从nib中拾取的集合视图中加载collectionView单元格,那么您可能会看到错误“'NSInternalInconsistencyException',原因:'无法在bundle中加载NIB:'NSBundle”当您加载时从nib文件中收集视图,您没有选择在nib上声明集合视图单元与故事板不同。正确的方法是使用新的笔尖创建一个新的自定义单元格,然后将其加载到集合视图中。注意:不要忘记注册新自定义集合单元格的nib。


12
投票

也许,您已使用小写字母在呼叫中命名了您的NIB。在这种情况下,模拟器工作正常,但iPhone设备将在运行时返回错误。

例如,

DetailViewController *detailViewController = [[DetailViewController alloc]
            initWithNibName:@"detailViewController" bundle:nil];

将失败。您需要更改为:

DetailViewController *detailViewController = [[DetailViewController alloc]
            initWithNibName:@"DetailViewController" bundle:nil];

3
投票

在Build Settings中,添加Architecture = >> armv6和armv7

我刚用这个删除了我的错误


2
投票

我有同样的问题,但这是因为我写了扩展名.xib,它不是必要的

token_view = [[GetToken alloc] initWithNibName:@"GetToken_iPad.xib" bundle:nil];

代替

token_view = [[GetToken alloc] initWithNibName:@"GetToken_iPad" bundle:nil];

1
投票

在我的情况下是下一个:

我在代码XIB中加载了名称为“?????? Ipad”,但是XIB文件名是“?????? IPad”


1
投票

是否有与NIB相关的警告?这通常是针对NIB文件中的错误(例如不正确的NIB类型)。

右键单击该文件,然后单击“获取信息”以验证该类型是否符合预期。


1
投票

请确保您的nib / xib文件包含在相应的目标成员中。


1
投票

我有同样的问题只是按照步骤。

1.将您的项目复制到另一个地方。

2.复制您的NIB文件哪个崩溃应用程序。

3.只需更改名称

防爆。旧文件Demo.xib比复制和更改名称DemoNew.xib

我的代码在下面

旧代码

Demo *controller = [[Demo alloc]initWithNibName:@"Demo" bundle:nil];

我只是改名

Demo *controller = [[Demo alloc]initWithNibName:@"DemoNew" bundle:nil];

它为我工作。


0
投票

只需检查项目中是否存在MainWindow.xib文件。如果没有,只需添加名为MainWindow.xib的新接口文件。

© www.soinside.com 2019 - 2024. All rights reserved.