2012-03-02 102 views
0

直到昨天爲止,我的iPhone上有一個完美的應用程序。我昨天做了一些調整,現在應用程序在我的模擬器上工作,但不在iPhone上。我收到的錯誤消息是在「applicationDidFinishLaunching」完成之後。「無法在iPhone上加載NIB捆綁」錯誤,但不是在模擬器上

錯誤是: 'NSInternalInconsistencyException',原因: '無法在捆裝載NIB: '一個NSBundle ....>(加載)' 名爲 'RootViewController的''」

奇怪的是,我沒有任何叫做RootViewController的xib文件,我在一個月前將它改名爲CategoryViewController,並且直到昨天才正常工作,我在每個viewControllers中驗證沒有提及「RootViewController」。我用「CTRL + shift + F」「RootViewController」進行搜索,在我的項目中沒有提到這個文件。

我在做的調整與目標info.plist有關,我只添加了應用程序支持iTunes文件共享選項。這是我的info.plist萬一我搞砸的東西了:

info.plist

我也有首次運行「清潔」昨天。

我驗證了我的MainWindow.xib文件具有它應該具有的所有連接,並將其與我用作基準的原始示例項目進行比較。

我試圖恢復項目回到早期的快照,當我積極的工作,現在甚至不工作。看來我的iPhone捆綁銷燬了。但即使在我從iPhone上刪除應用程序並重試後,它也會執行相同的操作。

我該如何去調試呢?我花了10個小時已經試圖解決這個問題,真的需要一些幫助。

+0

視圖插座是否連接? – CodaFi 2012-03-02 04:52:14

+0

ya一旦清除bild並檢查 – 2012-03-02 04:58:49

+0

是的,我的主視圖控制器稱爲CategoryViewController已連接。自昨天上次工作以來,沒有對連接進行任何更改。爲什麼它會在模擬器上運行,而不是在iPhone上運行?看起來像捆綁問題或他們建立設置... – jroyce 2012-03-02 05:01:44

回答

0

這是通過重構和重命名我的第一個viewController回到RootViewController解決的。故事的寓意是不要改變RootViewController的名字。內置的引用不容易改變。沒有必要使用不同的名稱。一旦我做到了這一點,一切都再次奏效。

0

Xcode模板創建Info.plist文件,該文件指定主要的nib文件。

- 默認的筆尖名稱是「MainWindow」。
- 該nib文件的默認版本包含一個導航控制器,該控制器引用名爲「RootViewController」的視圖。

但是,每個人都可以有iPhone或iPad的變化。這些文件有〜iphone或〜ipad添加到最後。他們的系統將通過後綴自動選擇變化。

您可能因爲嘗試加載RootViewController的原因而獲得不同的nib文件。另外,如果你的引用RootViewController的nib中有一個視圖或視圖控制器,操作系統會嘗試加載它。 (一旦它被打開,它實例化幾乎所有的nib文件。)

+0

謝謝。可能發生的一件事是我今天第一次打開MainWindow.xib文件。我從來沒有看過它。那之後我的問題就開始了。我在想它實例化了一些東西,現在我需要撤消它。我在原始文章中發佈了一個屏幕截圖,以便您瞭解我的連接。其中有一個未連接的rootViewController。這可能會導致一些問題嗎? – jroyce 2012-03-02 07:00:54

+0

我非常想找到解決方案。我甚至嘗試恢復到早期版本,但仍然無效。 WTF! – jroyce 2012-03-02 18:47:35

+0

有沒有辦法繞過這個?我想以編程方式設置將被加載的內容,以避免發生這種情況的可能性。 – jroyce 2012-03-02 19:15:22

相關問題