我有一個unlocalized的運輸應用程序,它在主項目目錄中有foo.xib。在準備本地化時,我將其移至en.lproj/foo.xib。現在,當我構建我的應用程序並安裝在測試設備上時,它最終會使用舊的foo.nib,它必須從之前出現(安裝過程不得刪除應用程序包中的舊文件)。從測試設備中刪除應用程序並重新安裝可以修復它 - 但我不希望現有客戶必須這樣做。iphone應用程序升級並移動xibs/nibs導致陳舊的資源
其中一些來自調用UIViewController的-initWithNibName:bundle方法(目前我正在向nibBundle傳遞nil)。我可以在這裏創建一個NSBundle實例,指向正確的本地化目錄。其他人在Info.plist中或在界面生成器的「NIB名稱」部分中指定,並且我沒有看到爲這些人指定包的方法。
將所有的xibs重命名爲(例如)en.lproj/newfoo.xib可能會更容易,那麼我認爲它會在運行時找到正確的nib。 (而且我將不得不再次在新版本中使用舊的「foo.xib」名稱)。這裏有更聰明的解決方案嗎? (除了回頭及時從en.lproj目錄開始;-)
謝謝! -Mike
我一直在用momd裏面的數據模型來處理這個確切的問題。我可以確認在通過.ipa部署代碼時刪除文件。我創建了一個ad-hoc構建.ipa,將它放到我的iTunes機器上,將我的手機與應用程序商店中的應用程序同步,然後用iTunes安裝ipa文件。它刪除了我不需要的核心數據模型文件,而XCode保留了它們。希望能夠消除你的一些恐懼,謝謝你更新你的問題,因爲我認爲這只是我在應用商店版本中必須處理的一個'功能'。 :( – Diziet 2011-04-13 21:17:51