2011-05-26 80 views
0

我在執行AppDelegate的didFinishLaunchingWithOptions之前運行方法「ViewDidLoad」時遇到了一個奇怪的問題! 原因我只檢查數據庫是否存在於「didFinishLaunchingWithOptions」中,如果數據庫不存在,我的應用程序崩潰。經過幾個小時的探討後,我厭倦了這樣做,並呼籲HEEEEELP! 如果您願意,可以這麼友善,並指出我正確的方向可能是我的項目有什麼問題。我不知道(aaarggh!)ViewDidLoad在AppDelegate didFinishLaunchingWithOptions執行之前運行!

謝謝!

問候 湯姆

+0

你是如何檢查數據庫的存在。顯示代碼將有所幫助。 – Abizern 2011-05-26 13:55:40

+0

發佈appDidFinishLaunching的一些代碼,如果沒有創建數據庫,則創建它。 – 2011-05-26 14:04:15

+0

如果您來自後臺,didFinishLaunchingWithOptions不會運行,以防萬一您不知道。 – vakio 2011-05-26 14:14:53

回答

-1

我不相信你。

application:didFinishLaunchingWithOptions:您決定加載哪些視圖。該應用程序不會隨機加載視圖,而無需告知它這樣做。您是否首先在viewDidLoadapplication:didFinishLaunchingWithOptions:中首先放置斷點,或者您是否假設application:didFinishLaunchingWithOptions:未被執行,因爲它不起作用。

+0

它終於會得到「應用程序:didFinishWithOptions」如果應用程序崩潰的第一手,但在我的代碼中斷viewcontroller「viewDidLoad」因爲沒有數據庫被複制,它不會執行「應用程序:didFinishLaunchingWithOptions」(其中的數據庫複製發生) – Tom 2011-05-27 06:27:08

+0

我只是困惑的事實,應用程序:didFinishWithOptions「不再以正確的順序(作爲第一)運行,我很感興趣,你怎麼改變它再次正確的順序.... – Tom 2011-05-27 06:30:19

3

的viewDidLoad因爲這些調用didFinishLaunchingWithOptions前裝從發鈔銀行加載ViewControllers可以運行:

+0

有沒有辦法來防止它? – Jaroslav 2012-10-25 15:16:37

0

我有同樣的問題,並在尋找更詳細的代碼後,我發現這裏面的awakeFromNib xViewController,我正在啓動另一個yViewController。所以yViewController的viewDidLoaddidFinishLaunchingWithOptions:之前運行。

基本上,最初的VC的awakeFromNib之前調用didFinishLaunchingWithOptions:。你可能有類似的設置。研究一下。

0

如果您的數據庫文件加載速度不夠快,覆蓋你的AppDelegate的init():

override init() { 
    if filesExistBool == false { 
     addDBFiles() 
    } 
} 
相關問題