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

stu*_*per 16 iphone xcode ios uistoryboard

当我使用我的应用程序一段时间后,我收到以下错误.通常需要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''
Run Code Online (Sandbox Code Playgroud)

我不是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";
};
Run Code Online (Sandbox Code Playgroud)

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

崩溃发生在iOS 5模拟器中.

小智 43

我也得到了这个错误.

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

所以,我将这些代码移入- (void)viewDidLoad,一切顺利.

  • 你救了我的命! (3认同)
  • 为了理解故事板流程,有几条规则:1.不要在init函数中执行任何UI设置(例如:initWithCoder); 2.在viewDidLoad或viewWillAppear中执行UI设置; 3.了解初始化步骤:initializeViewControllerWithIdentifier - > viewDidLoad - >(如果您在父视图控制器中执行任何进一步操作,它将覆盖viewDidLoad) - > viewWillAppear - > viewDidAppear. (3认同)

Gre*_*ner 2

这个问题评论区好像已经有答案了。在这里重新发布,以便问题显示为有答案。-- GS.

\n\n

答案复制自评论:

\n\n

第三方组件中存在内存泄漏。一旦资源耗尽,就会崩溃并出现上述错误。几周的 QA/Beta 测试证实它已经消失了。谢谢。\xe2\x80\x93 茬跳线 1 月 24 日 2:29

\n