我們幸運地從內部用戶那裏進來,所以我們能夠詳細檢查她的手機,並重新構建了發生的事情:她有一個非常老而慢的iPhone。當她升級到我們的最新版本時,第一次有數據庫訪問時,它引發了遷移,在她的舊的慢速電話上顯然花了很長時間。不幸的是,我們第一次ping數據庫在應用程序中:didFinishLaunchingWithOptions :,並且iOS決定我們的應用程序花費很長時間才能完成,並且在數據庫遷移過程中殺死了應用程序。這意味着每次她嘗試啓動應用程序後,數據庫已損壞,發生不好的事情。在應用程序中擁有數據庫訪問權限是否是不好的做法:didFinishLaunchingWithOptions:?
顯然,我們可以通過在應用程序中不做任何數據庫訪問來解決這個問題:didFinishLaunchingWithOptions :.但另一方面,我們已經看到過這種情況,只有一位用戶使用舊手機(據推測,這是一個真正的完整數據庫)。所以我不確定這個「bug」是多麼的讓褲子變溼......
在應用程序中擊中數據庫被認爲是可怕的做法:didFinishLaunchingWithOptions :,我們應該在下一個可能的機會解決這個問題?或者這不是什麼大不了的事,我們在這裏只是有一場「完美的風暴」?有什麼想法嗎?
我們已經爲我們期望耗費的東西設置了啓動畫面。有問題的代碼通常只是一個非常快速的數據庫查詢(查找配置文件名稱或IIRC),只是在這個奇怪的情況下,它花了很長時間才讓我們關閉。這就是讓我覺得也許在didFinishLaunchingWithOptions中碰到數據庫通常是不好的做法,因爲你永遠不能確定數據庫查詢可以持續多久。我沒有聽到壓倒性的「是的,那真是太可怕了,永遠不會那麼做!」,所以我現在傾向於迴避這個問題。 – user435779 2015-03-20 14:40:43