无法在捆绑中加载NIB:'NSBundle使用故事板时

问题描述 投票:16回答:3

当我使用我的应用程序一段时间后,我收到以下错误。通常需要50到100次动作才能导致坠机。虽然我正在使用故事板,但我没有理解它,这是一个NIB错误。

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文件中有一个.nib引用:

/* 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模拟器中。

iphone ios xcode uistoryboard
3个回答
43
投票

我也得到了这个错误。

最后我发现原因是我在self.tableView开始之前访问了-(id)initWithCoder:(NSCoder *)aDecoder

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


2
投票

这个问题似乎已在评论区域得到解答。重新发布此处,问题显示为有答案。 - gs。

从评论中复制的答案:

第三方组件中存在内存泄漏。资源耗尽后,会因上述错误而崩溃。几周的QA / Beta测试证实它已经消失了。谢谢。 - 发茬跳投1月24日凌晨2点29分


0
投票

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

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