2010-02-04 64 views
1

對於必須有一組數據的插入,用戶可以做之前首先推出自己的事情的iPhone應用程序,哪裏是正確的位置(在代碼)以插入數據?我正在查看幾張表格之間的700-800條記錄。在覈心數據存儲中初始化數據的適當位置在哪裏?

我最初嘗試在applicationDidFinishLaunching:這樣做。這對iPhone 3gs運行良好,但導致3g一致的首次啓動崩潰。在深入研究這個問題後,我發現在3G上,應用程序響應速度不夠快(大概是因爲它忙於將大量數據轉儲到持久性存儲中),所以操作系統在假設它沒有響應的情況下將其殺死。

要解決這個問題,我提出的數據初始化處理出appdidfinishlaunching的並從所述第一視圖控制器示出在啓動後產生了另一個線程。這工作的大部分時間,但每過一段時間有134030誤差在覈心數據,而根據蘋果常數參考,應用程序崩潰是:

NSPersistentStoreSaveError

錯誤代碼來表示持久存儲爲保存操作返回錯誤。此代碼適用於權限問題等錯誤。

在managedObjectContext上調用​​時會彈出此錯誤。

回答

5

理想實現發展的最後,你會填充這個數據到核心數據存儲,並添加到您的項目。首次運行時,您可以將應用程序包中的該存儲作爲用戶的Core Data存儲複製。這應該適用於你的情況。

在無法做到這一點的情況下,人們會在後臺線程執行導入。

+1

優秀的解決方案,它非常有意義。一位智者曾經告訴我,我患上了「癱瘓的分析」,這意味着我常常忽視因過度分析問題:) 感謝一束最簡單的解決方案! – jtrim 2010-02-04 19:51:31