2013-06-11 81 views
0

我對核心數據有令人沮喪的問題。在應用程序中,我設計了一個視圖,用戶可以通過作者,作曲家等搜索歌曲。我將這些數據存儲在NSManagedObject子類中。由於應用程序中的數據沒有更改,我在另一個簡短程序中創建數據庫,然後將.sqlite文件移至應用程序包中。核心數據導入丟失字段

當我從數據庫中獲取所有Person對象時,會發生一些奇怪的事情。所有Person對象都顯示出來,但對象中的一些name字段以某種方式設置爲nil。只有角色是「作曲家」的對象似乎有這個問題。

是什麼讓這麼多問題是我已經驗證這些實體的名稱是在sqlite文件中。我可以在導入程序(創建數據庫的那個)的末尾打印所有對象並獲取正確的信息。我還認爲,也許文件系統在複製時對文件做了些什麼,但是我可以從命令行打開sqlite文件,並手動獲取作曲者的名字。

有沒有人有類似的問題?

+0

您是否已將'-com.apple.CoreData.SQLDebug 3'添加到您的調試方案,並且在讀取'Person'的行後不久就有一個斷點? CoreData在訪問商店時看到什麼? – Olaf

+0

我沒有,但謝謝你的提示。 –

回答

0

經過幾個小時的沮喪之後,答案非常簡單。前幾天有一個問題,一些數據在傳輸過程中被破壞,並且損壞的數據庫被放入應用程序包中。如果數據庫在每次運行時都沒有運行,應用程序將緩存該數據庫。所以,我一直試圖讓這個工作正常運行,我可能已經做對了,捆綁的數據庫只是沒有被複制,因爲那裏已經有一個壞的數據庫了。

該應用程序只需要卸載並重新安裝。