我遇到类似于in this thread讨论的问题,但提供给他的解决方案对我不起作用。我为冗长的描述道歉,但这是我关于SO的第一篇文章,我想完成。
我有一个在模拟器中运行良好的程序。但是,当我尝试将其推出设备时,我收到一条错误,上面写着:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/....app> (loaded)' with name 'MainWindow''
所以:它正在尝试加载名为MainWindow的XIB,但它找不到它。那是因为我没有名为MainWindow的XIB;第一个XIB I加载称为FrontPage.xib。我没有使用其中一个模板启动此程序,因此在开头没有提供MainWindow.xib文件。
Google计算机告诉我可以在我的应用程序的plist中修改主nib文件基名。所以,我去那里,我把它改为FrontPage。现在,我得到了一个不同的错误:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x12c270> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.'
我把头发拉到这里 - 有人知道解决方案吗?
答案 0 :(得分:2)
确保您的视图已连接到Interface Builder中的“查看”插座。您可以通过右键单击IB中的“文件所有者”,然后将“视图”插座拖到视图中来执行此操作。这是我正在制作的游戏的插图。注意蓝线,从右边的点拖到“视图”。
您要检查的另一件事是您的Info.plist。确保你已经调用你的nib文件 FrontPage 而不是* FrontPage ****。nib ***。
答案 1 :(得分:1)
如果Frontpage.xib将成为您的应用程序的主xib,那么您必须在该xib中创建一个Window对象和一个App Delegate对象,以便应用程序能够加载。在您开始呈现视图控制器之前,您必须配置应用程序和窗口,否则它将在您描述时崩溃。我建议使用基于Window的模板创建一个新项目,然后看看自动创建的MainWindow.xib并尝试在Frontpage.xib中模仿它。
..虽然我真诚地建议在项目中使用MainWindow.sib并使Frontpage.xib成为普通的视图控制器xib。如果您选择将新文件添加到项目中,然后选择User Interface,然后选择Application xib而不是View xib,那么它将为您设置接近您所需的内容。
项目模板非常重要且有用。你应该经常使用它们。我用一个基于Window的模板开始我的全部。它是最基本的模板,也是最灵活的。
答案 2 :(得分:0)
如果通过IB设置File owner属性来正确设置FrontPage.xib的视图控制器,则还需要设置view属性。您可以通过控制从Fileowner拖动到视图来执行此操作。从错误中可以看出,您尚未为视图设置视图属性。在“界面”构建器中打开nib,然后在连接Inspector中查找“查看连接”,这必须连接到文件所有者的视图插座。您无需在任何地方将其声明为属性。