16

当我使用我的应用程序一会儿时,我收到以下错误。通常需要 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 模拟器中。

4

3 回答 3

43

我也得到了这个错误。

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

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

于 2012-05-25T14:33:43.930 回答
2

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

从评论中复制的答案:

第 3 方组件中存在内存泄漏。一旦资源耗尽,它将因上述错误而崩溃。几周的 QA/Beta 测试证实它已经消失了。谢谢。– 胡茬跳线 1 月 24 日 2:29

于 2012-05-24T03:50:30.937 回答
0

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

于 2013-10-25T17:03:29.103 回答