我打開了一箇舊的iOS項目,如2010年的iOS 3的東西,並發現它在啓動時崩潰。例外是:initWithCoder異常時,使主視圖可見(舊的IOS項目)
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'
我已經搞亂了項目現在幾個小時,試圖追查是什麼導致它。我覺得我已經耗盡了我的智慧和資源,而且從零開始重新制作大部分應用程序。任何想法可能是什麼原因?
我的調查結果:
該項目是什麼活在AppStore一個全新的git結帳。是的,該應用程序非常簡單,足以在兩年內沒有任何更新的情況下仍能正常運行。
我改變了編譯方式,將基本SDK從4.1(不再在Xcode中提供)更改爲iOS6並運行。目標在項目設置中仍然爲3.0。
我檢查了我沒有在我的代碼中的任何地方調用或實現initWithCoder。我指定的代碼中的行只是對main.m中的UIApplicationMain()的調用,這對我沒有多大幫助。
該應用程序只是3意見。主要,細節和關於。它看起來像MainView或MainViewController包含該問題。我從應用程序結束時不會崩潰,當我:1.選擇不啓動時將其添加到NavigationController。 2.選擇添加AboutController。
我懷疑問題是Xib文件而不是控制器或視圖代碼,因爲我可以使用AboutView Xib啓動MainViewController並啓動應用程序。
我想知道我是否可以「修復」這個Xib,或者如果我必須創建一個新的並重新佈局GUI元素?我擔心的是我唯一的前進方向。該應用程序很簡單,但仍然需要一些時間來重新佈局主要(和最密集的)視圖。另外,我寧願知道問題出在哪裏,而不是一天重新開始,甚至有可能在同樣的情況下結束。
我是否在正確的軌道上?有沒有辦法追蹤有問題的代碼或GUI小部件?
在此先感謝您的任何建議。
更新:在新的Xib中重新創建用戶界面的基礎知識並使用該應用程序工作。還想知道我是否可以通過更改某個設置或其他設置來修復舊設備。
謝謝。你對我的問題的可能原因的理由聽起來很穩固。我記得將xib版本更改爲新版本,所以我懷疑在某處有一些舊的(iOS3時代)小部件。二元搜索並不是我能想到的最有趣的事情,但你能做什麼:) –