2013-04-16 54 views
4

我在項目中爲意大利語添加了新的本地化,之後我本地化了一個xib文件以開始翻譯項目。問題是,現在當我在模擬器中運行我的項目時,沒有發現任何xib。Xib在本地化後找不到

(GAIUncaughtExceptionHandler.m:41):未捕獲的異常:在包無法加載NIB:「一個NSBundle ...

我實例的此文件所有者廈門國際銀行使用initWithNibName。

我已經嘗試過xib和基本本地化的純粹本地化,但都沒有工作。

我初始化所有者這樣的:

[[SPConfigViewController的alloc] initWithNibName:@ 「SPConfigViewController」 束:無];

編輯:

我創造了廈門國際銀行的本地化版本後,我決定只關閉了XCode,然後再次打開它,和它的工作...

+0

當你調用'initWithNibName'顯示的代碼。 –

回答

24

我有同樣的經歷,什麼頭腦之旅...

過程:

(假設已在該項目的信息選擇「使用基地國際化」項目)上

  1. 點擊在文件瀏覽,它加載界面生成器
  2. 使用文件檢查器一個的.xib資源,單擊該按鈕Localize
  3. 模態的禮物要求的語言,你想用(「基地」是不可用的我,所以我選擇了「英語」)在文件檢查器的局部部分
  4. 現在勾選旁邊英語並沒有靠近基地,所以我檢查基地
  5. 然後我得到了我想要如何英語進行本地化挑選器:Interface Builder中可可觸摸XIB本地化字符串

好吧,我是樂觀的是,這將工作,所以RU ñ...
...和崩潰

***終止應用程序由於未捕獲的異常 'NSInternalInconsistencyException',理由是: '不能在包中加載NIB:' 一個NSBundle <在/ var /移動/應用/ _____/_____。應用程序>(裝載) '名爲'__MY NIB STRING HERE___'

清潔,建設,運行 - >崩潰
選項鍵+清潔,建設,運行 - >崩潰
選項鍵+清除,刪除應用程序,生成,運行 - >崩潰
選項鍵+清潔,重置模擬器,詛咒,建設,運行 - >崩潰

退出Xcode中,重新開張的Xcode,建設,運行 - >作品! WTF。

我已經打開了一個Bug Report against the issues,如果遇到此問題需要複製它,以便開發人員工具團隊知道其重複出現的問題,將不勝感激。

+1

重新引導的XCode就像一個魅力...哈哈 –

+0

同樣的問題和Xcode 4.6.3。選項鍵+清理,重置模擬器,詛咒,退出Xcode,重新啓動Xcode,編譯,運行 - >爲我工作:D – Daniel

+0

從模擬器中刪除應用程序,退出Xcode並手動刪除派生的數據文件夾通常會爲我解決這個問題。 – wrightak

0

你可以這樣做:

[[YourViewController alloc] initWithNibName:@"YouViewController.xib" bundle:nil] 

不要使用擴展視圖控制器的筆尖名字,嘗試爲波紋管:

[[YourViewController alloc] initWithNibName:@"YouViewController" bundle:nil] 
+0

這是我如何對其進行初始化: [SPConfigViewController頁頭] initWithNibName:@ 「SPConfigViewController」 捆綁:無]。 – MouseCaneta

1

這似乎是由於xib文件的本地化將其移動到項目根目錄內的新目錄(base.lproj),之後xcode不能再找到xib文件。

,我首先要對項目文件,選擇我的目標,要構建階段選項卡解決了這個。然後如果你展開'Copy Bundle Resources'文件夾,你應該注意到在NSException中被抱怨的文件是紅色的。我刪除了這個文件,並閱讀了'base.lproj'子文件夾中找到的本地化版本,這似乎解決了這個問題。

據我所知,這將需要爲每個本地化xib,這是一個不必要的faffing周圍噸(謝謝xcode ...),但嘿,該應用程序不再崩潰。

+0

我已經嘗試過這一遍又一遍,沒有修復。重新啓動Xcode也沒有修復。使用git,我重置所有更改。但我真的很想使用基礎國際化。你對此有更多瞭解嗎? –

0

請確認您有翻譯成所有語種的文件。我已經放棄了英語,並且會以這種方式失敗。直到我檢查了英文,然後重新添加了玉米棒,我才能在「拷貝包資源」中正確顯示它。你可以告訴它是確定的,因爲它不會是紅色,它會說「......在/ MyProject的/(本地化).LPROJ」,其中MyProject的,當然,是你的項目的名稱。

相關問題