2014-11-25 39 views
1

我的iOS應用程序使用CoreData,並且每次首次打開應用程序時都需要使用默認值填充CoreData設備相關的表。將持久數據保存爲CoreData的txt文件是否安全?

所以我使用NSUserDefaults來檢查它是否是第一次打開。如果是第一次,我用已經創建的值填充表格(在CoreData上),並通過逐行讀取和分離方式從txt文件中格式化行。

而我的問題是,它是安全和最快的方式來使用txt文件進行此類操作?

回答

5

一個更好的選擇是在應用程序包中保留一個「固定的」sqlite文件並檢查文檔目錄中是否存在SQLite文件。如果文件不存在,則將應用程序包中的固定數據複製到文檔目錄中。

這將跳過整個解析邏輯,並允許您的應用程序更快地啓動。

+0

我還需要檢查SQLite文件是否存在,因爲在運行時沒有添加或刪除數據(用戶永遠無法更改CoreData上的項目),而不是每次首次啓動應用程序時直接複製默認SQLite文件? – JustWork 2014-11-26 13:38:00

+0

如果數據是**從未**更改,則將其保留在AppBundle中。這也使您可以輕鬆更新後續版本的數據。 – 2014-11-26 16:07:42

+0

所以我的問題的答案是否定的,對吧?感謝您的幫助。 – JustWork 2014-11-26 16:29:29

0

馬庫斯的方法也是我會推薦的。但是您仍然可以在開發過程中繼續使用解析代碼,以便創建種子SQLite文件。當您發佈應用程序時,請將最新的種子商店打包爲捆綁資源並禁用/刪除您的解析代碼。

+0

解析代碼應該是構建過程的一部分,以便種子數據始終保持新鮮。 – 2014-11-26 16:07:07