2010-11-11 79 views
25

我试图测试我在iPhone上开发的应用程序。为此,我在Xcode上将目标从模拟器更改为设备。该应用程序已正确上传到设备并且可以正常工作。显示主视图,但如果我尝试打开辅助视图,应用程序会崩溃。无法在iPhone设备上加载笔尖

在iPhone日志([?就是看从iPhone日志的唯一出路]我安装了iPhone配置实用程序查看控制台),我可以看到这个错误:

Could not load NIB in bundle 

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

回答

22

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

xib的文件名是什么?


尝试卸载从模拟器的应用程序,并重新安装它 - 模拟器可能从应用程序的先前运行遗留下来的旧文件 - 有你改名/在所有移动的厦门国际银行在发展?

+0

文件名是singleView.xib(h和.M),我从来没有重命名或移动文件,但我创建它在另一个文件夹(不是类) – 2010-11-11 16:09:26

+0

你可以编辑你的问题,并把代码行,你尝试加载nib文件? – deanWombourne 2010-11-12 15:44:14

+4

关于设备区分大小写的问题,您的回答是现场。我有一个名为XYZViewController.h/.m的类和一个名为XYZviewController的xib - 大小写不一致导致应用程序在模拟器上运行良好,但是当我尝试打开设备上的xib时发生崩溃。改变名称(在这种情况下的xib)解决了这个问题。 – FiddleMeRagged 2011-01-27 11:48:04

9

我调用initWithNibName:@"MyViewController"

更改调用时有同样的问题,以initWithNibName:NSStringFromClass([MyViewController class])行之有效

+0

即使在模拟器上运行,我也遇到了这个异常。这个答案正是我需要做的,以解决这个问题 – 2011-10-14 18:36:24

1

为了什么它的价值,我收到此错误时,我的标签栏按钮的人有错误的类分配给它。

18

我有一个类似的问题,并得到相同的错误。原来我在属性面板的“NIB名称”下使用了xib文件的全名:

不要使用“SomeViewController.xib”,只需使用“SomeViewController”而不带“.xib”扩展名。

9

你可以试试这些东西:

  1. 确保案件正确
  2. 使用厦门国际银行文件名不带“的.xib”扩展
  3. 删除任何 - (破折号)或其他特殊字符,使用_ (下划线)
  4. 从项目中删除XIB文件,并添加回Xcode项目
  5. 检查构建设置,并确保部署更改为当期的SDK
+0

从项目中删除x​​ib文件,并添加到为我工作的Xcode项目 – Misha 2012-04-22 03:16:07

2

我遇到了同样的问题。在我的情况下,笔尖名称是“MyViewController.xib”,并将其重命名为“MyView.xib”。这摆脱了错误。

我也在将项目从XCode 3移到4.2。改变路径类型并不重要。

+0

发布完全重复的答案时,你可以小心吗?这些往往被标记为垃圾邮件。 – Kev 2011-06-30 07:53:10

+0

嗯..这是一个dup吗?我不认为它是一个重复。我没有看到另一个答案,即笔尖的名称不需要“控制器”。如果答案已经在这里,很乐意删除。 – vesselhead 2011-07-01 21:14:10

1

我已经把它从xib删除所有的本地化运行 在右边的窗口中。 也许文件位于本地化文件夹中。

5

在我的情况下,xib只是没有被复制到包中。一旦我将xib添加到应用程序目标的“Copy Bundle Resources”步骤中,一切都很顺利。

+0

这正是我的问题。谢谢! – 2012-11-07 16:57:10

3

我终于成功地解决了这两个步骤,这个问题:

  1. 在视图控制器文件检查器中,删除任何本地化 (只是用于测试)
  2. 确保你已经检查了正确的目标会员

我不知道为什么它的工作原理在模拟器:(

+0

这对我有用:)。感谢Alex。 – Max 2011-09-08 12:37:48

2

我有同样的错误消息。 然而,我的问题是,我的手机上的语言设置是在“英国”和“英国”的地区上设置的。但是,无法加载的文件被放置在de.lproj目录中。 将文件移动到根目录解决它。

1

我有同样的问题。我的解决方案是删除视图的所有本地化版本。

1

我确实有你所描述的行为:在模拟器上工作,但在设备上运行时得到“无法在包中加载NIB”,并且应用程序仍然停留在启动映像上。

在我的情况下,问题是关于Xcode自动创建英文本地化的MainWindow.xib文件。我在我的应用程序中支持英语和意大利语,并意识到我错过了意大利语的MainWindow.xib本地化版本。

因为我不需要本地化这个文件(它是Xcode的默认创建本地化)我通过简单地删除英文本地化,解决了这个问题,所以独立于本地化使用相同的文件。解决问题的另一种方法是添加缺少的本地化版本,如果需要的话。

该应用程序在设备上崩溃,因为我的设备配置为意大利语言。模拟器被设置为英语,这就是应用程序正确运行的原因。为了验证,我将模拟器设置为意大利语,应用程序崩溃确认了本地化问题。

62

我有同样的问题,并固定它像这样:

  1. 打开Xcode目标
  2. 单击“生成阶段”选项卡
  3. 点击“复制包资源”部分
  4. 点击+
  5. 添加缺少的笔尖文件
+0

这是很好的答案! – booker 2012-04-05 23:06:41

+0

你可以将.xib文件从Resources拖动到Copy Bundle Resources – efeyc 2012-04-25 11:38:22

+0

这个为我工作 – 2012-05-30 13:06:06

1

我也有这个专业版当我从initWithCoder加载一个子视图控制器时,这是一个很好的初始化位置,但请记住,您必须在视图加载后将其添加为实际的子项。

所以转向这样的事情:

[self addChildViewController: self.pageViewController]; 
[self.view addSubview: self.pageViewController.view]; 
[self.pageViewController didMoveToParentViewController:self]; 

...你的init方法,进入viewDidLoad中。不要特别说这是你的问题,但这可能对别人有帮助。

2

对于我来说,这个问题是什么FreeAsInBeer说:笔尖莫名其妙地从包丢失,而它一直有前和应用程序的早期版本中工作正常。

要解决这个问题,我做了以下内容:

  1. 选择在Project Navigator项目。
  2. 在项目设置中选择Build Phase
  3. 展开复制包资源
  4. 向下滚动(如有必要),然后点击+按钮。
  5. 在出现的对话框中,单击添加其他...按钮。
  6. 浏览文件系统中缺少的.XIB文件。
  7. 构建并运行...运行时应该出现缺失的笔尖。

这仅仅是为我工作,当我得到的消息。你的里程可能会有所不同,因为每个人的情况并不总是相同的,但我希望这可以帮助遇到此问题的人。

-Evan

2

一个简单的错误,可能导致此错误是试图对进口的viewController initWithNibName当您使用的是故事板,而不是单独的笔尖文件。如果是这种情况,那么只需初始化控制器,而不是尝试用不存在的笔尖进行初始化,或者使用nil初始化那些字段。

如果故事板和没有笔尖,改变initWithNibName:包:刚才是init或initWithNibName:无捆绑:无