2011-01-28 104 views
1

我遇到类似in this thread的问题,但提供给他的解决方案对我而言并不合适。对于冗长的描述我很抱歉,但这是我在SO上的第一篇文章,我想完成。在iPhone程序中加载初始笔尖时出现问题

我有一个在模拟器中运行良好的程序。然而,当我试图将其推出的设备,我得到的是说这样的错误:

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;我加载的第一个XIB称为FrontPage.xib。我没有使用其中一个模板启动该程序,因此在开始时没有提供MainWindow.xib文件。

Google机器告诉我,主笔尖文件基本名称可以在我的应用程序的plist中修改。所以,我去那里,并将其更改为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

它看起来像通过Interface Builder在nib文件中设置了'view'插座,但其文件所有者没有实例变量/声明属性'view'。 – 2011-01-28 04:34:54

+0

是FrontPage.xib控制器笔尖吗? – Seyther 2011-01-28 04:35:56

+0

Bavarious:是的,在Interface Builder中,我的文件所有者确实有一个到名为“View”的视图的插座。我没有在代码中的任何地方声明这是一个属性 - 我需要吗? 这是我对iOS编程经验不足的地方。 :) – Kyle 2011-01-28 05:03:45

回答

1

如果Frontpage.xib将成为您的应用程序的主要xib,那么您必须在该xib中创建一个Window对象和一个App Delegate对象,以便应用程序能够加载。在开始呈现视图控制器之前,您必须先配置应用程序和窗口,否则它会在描述时崩溃。我会建议使用基于Window的模板创建一个新项目,并只需看看自动创建的MainWindow.xib,并尝试在您的Frontpage.xib中模拟它。

..虽然我只是诚挚地建议在项目中使用MainWindow.sib,并使FrontPage.xib成为普通视图控制器xib。如果您选择将新文件添加到项目中,请选择“用户界面”,然后选择“应用程序xib”而不是“查看xib”,然后它将为您设置接近您需要的内容。

该项目模板是重要的和有用的。你应该总是使用它们。我用Window Based模板开始我的所有工作。它是最基本的模板,也是最灵活的。

0

如果FrontPage.xib的视图控制器通过IB设置File owner属性来正确设置,那么您还需要设置视图属性。您可以通过控制从Fileowner拖动到视图来完成此操作。从错误中可以看出,您尚未为视图设置视图属性。在“界面”构建器中打开笔尖,然后在连接检查器中查找“视图连接”,这必须连接到文件所有者的视图插座。您无需在任何地方将其声明为属性。

2

确保您的视图已连接到Interface Builder中的“查看”插座。您可以通过右键单击IB中的“文件所有者”,然后将其拖动到视图的“查看”插口来执行此操作。下面是我正在进行的一个游戏的插图。注意蓝线,从右边的点拖到“视图”。

enter image description here

你会想另一件事是检查你的Info.plist。确保你已经调用了你的nib文件FrontPage而不是* FrontPage ****。nib ***。