2011-01-28 74 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 ***。