2011-01-12 40 views
0

我正在學習使用核心數據。 在Xcode中創建實體之後,我想要插入一些數據,這些數據是主數據,常見的方式是什麼,或者我應該說最佳實踐來實現這一目標?在Core Data中將主數據插入sqlite的常用方法是什麼?

我google了一下,發現了由xcode生成的真正的sqlite文件的位置。它看起來像/Users/<Username>/Library/Application Support/iPhone Simulator/User/Application/<Application GUID>/Documents/<database name.sqlite> 現在我想知道如果我直接編輯sqlite(只是插入數據)文件是一種正確的方式?

回答

1

如果您的意思是所有新數據庫實例的預設數據庫設置,有幾種方法可以執行此操作。

  1. 以編程方式,您可以使用一堆代碼將實體插入到managedObjectContext中。除了一個相當簡單的數據集之外,這會稍微痛苦一點,但優點是你可以使用全部NSPersistantDocument來實現免費。

  2. 使用您的應用程序創建數據集,然後將其作爲只讀副本保存在應用程序包中,您可以在用戶創建新數據庫時根據需要進行克隆。如果您使用的是NSPersistantDocument體系結構,則會變得有點麻煩。

  3. 做你說的第一個地方。使用sqlite3客戶端將數據注入數據庫以創建像2這樣的只讀副本,但風險在於CoreData插入的數據庫結構更多,這是您不知道的,因此您可能需要一些工作來處理髮現CoreData在sqlite3中搞亂了它後無法讀取數據庫。我沒有嘗試,但它可能工作。

恕我直言,1是最好的做法是你從NSPersistantDocument

1

一堆的自由行爲的唯一理智的方法來填充數據集到一個核心數據sqlite的商店是編程。

對於iPhone應用程序,人們通常會編寫小OS X應用程序來生成sqlite文件,然後將其添加到應用程序包中。

核心數據sqlite存儲是複雜的,蘋果官方認爲它是一個不透明的數據存儲。試圖手動修改或創建商店中的數據可能會導致數據損壞。不要這樣做。

相關問題