2011-12-31 108 views
16

我在使用我的应用一段时间时出现以下错误。通常需要50到100次运动才能造成坠毁。虽然我正在使用故事板,但我没有理解它,这是一个NIB错误。无法在包中加载NIB:'使用故事板时的NSBundle

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 
'Could not load NIB in bundle: 'NSBundle 
</Users/me/Library/Application Support/iPhone Simulator/5.0/Applications/GUID/appname.app> 
(loaded)' with name 'MainStoryboard_iPhone.storyboardc/q8p-MH-tsT-view-acD-hJ-g0C'' 

我不是100%确定从哪里开始看,但我认为这意味着故事板是腐败的?

我翻遍了所有的源代码,并且我没有任何字符串“nib”,所以没有nibWithNibName调用等等。我也没有MainWindow.xib,尽管我尝试了创建一个。我不确定当我使用故事板时是否可以将它设置为主界面。有一个参考的.xcodeproj/project.pbxproj文件中的笔尖,但是:

/* Begin PBXBuildRule section */ 
148BDD4C14AE8D5E002C30ED /* PBXBuildRule */ = { 
    isa = PBXBuildRule; 
    compilerSpec = com.apple.compilers.proxy.script; 
    fileType = wrapper.nib; 
    isEditable = 1; 
    outputFiles = (
    ); 
    script = "$(DEVELOPER_BIN_DIR)/ibtool\n"; 
}; 

我在Xcode 4.2使用故事板。我的主要故事板设置为MainStoryboard_iPhone,其文件名为MainStoryboard_iPhone.storyboard。

该崩溃发生在iOS 5模拟器中。

+1

你好,欢迎来到SO。如果您使用4个空格缩进开始段落,则将其格式化为代码。我已经为你纠正了这个问题。 – jrturton 2011-12-31 16:40:30

+2

关于您的问题,故事板将在加载新视图时代表您在后台调用loadnibnamed或类似内容。如果您查看故事板中的身份检查器,您将看到一个名为对象ID的字段 - 其中一个应与您在错误中看到的部分字符串(q8p ...)匹配。这应该缩小它试图加载的内容。 – jrturton 2011-12-31 16:45:07

+0

如果您将故事板作为源代码打开,您可以直接搜索它。 – jrturton 2011-12-31 16:46:54

回答

2

这个问题似乎已经在评论区回答了。在这里重新发布问题显示为有答案。 - gs。

回答评论复制:

有一个第三方组件内存泄漏。一旦资源耗尽,它会因上面的错误而崩溃。几周的QA/Beta测试证实它已经消失。谢谢。 - 茬跳线1月24日2:29

+0

你应该真的把它标记为社区维基 - 你做的是正确的事情,但是你得到的任何维基百科都不是你的。 – jrturton 2012-05-25 18:42:08

+0

好点。不知道如何做到这一点。如果你能指出我正确的方向,我可以做出改变。 – 2012-06-01 20:04:24

+0

您编辑问题,下面有一个复选框。 – jrturton 2012-06-01 21:35:06

43

我也确切地得到了这个错误。

最后我发现原因是我在访问self.tableView之前在-(id)initWithCoder:(NSCoder *)aDecoder之前启动的。

所以,我将这些代码移动到- (void)viewDidLoad,一切都很顺利。

+3

你救了我的命! – Garoal 2013-01-27 14:59:58

+0

谢谢!好的解决方案 – 2013-02-06 15:06:58

+0

这太奇怪了,它曾经工作过,但后来我做了一些魔术,而没有任何改变,它开始崩溃,你的解决方案是正确的!谢谢! – dreamzor 2013-03-27 19:40:02

0

我以前有过这个问题。我的笔尖的名称与我的视图控制器的名称不同,而使用- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil作为我的初始化名称。

相关问题