2010-07-27 73 views
7

我在書籍和網站上看到了提供.sqlite文件下載的教程。 sqlite文件用於核心數據。從Core Data存儲創建.sqlite文件?

我如何獲得.sqlite文件FROM應用或核心數據存儲到我的桌面?

+1

如果您要求創建CoreData SQLite存儲的方法,請小心提供建議SQLite工具的答案。您可能需要編寫或調整CoreData應用程序以導入其他格式的數據(例如,平面文件,CSV等),可能使用「NSScanner」。 – Justin 2010-07-27 22:10:58

回答

14

如果您要創建一個預填充的與Core Data一起使用的sqlite文件,那麼您需要必須使用Core Data創建它。創建一個用於數據輸入的基本桌面應用程序並使用它來創建該文件,然後將其嵌入iOS設備中是很簡單的。

請勿嘗試手動複製文件中的數據結構或鏈接。你可能會得到它的工作,但你會花更多的時間試圖讓它工作,它最終會失敗。 Core Data sqlite文件的內部結構應該被認爲是一個私有API。該結構不公開,可以在沒有通知的情況下更改。

+0

請解釋。 – Moshe 2010-07-28 17:28:46

+6

他意味着你下載的sqlite文件是由Core Data自己創建的。要創建你自己的,你建立你的核心數據堆棧,然後將數據導入它。理論上講,你可以創建一個sqlite文件,Core Data可以使用SQL命令從頭開始使用,實際上,獲取數據文件是一種困難且脆弱的方式。核心數據SQL API是私有的和可更改的。實際上不可能複製。用你用來讀取文件的核心數據生成文件總是更容易和更清晰。 – TechZen 2010-07-28 19:44:57

+0

因此我在XCode中生成Core Data模型和類,然後以某種方式從中導出一個sqlite文件?怎麼會這樣? – Moshe 2010-07-30 19:26:44

0

有一個可從sqlite.org(在標準下載中)下載的命令行程序,可用於使用模式創建空白數據庫。通常數據庫文件在操作系統和設備之間是兼容的。

4

如果你特別想創建一個核心的數據存儲,使用此方法:

NSPersistentStoreCoordinator 
    addPersistentStoreWithType:(NSString*)storeType 
    configuration:(NSString*)configuration 
    URL:(NSString*)storeURL 
    options:(NSDictionary*)options 
    error:(NSError**)error 

必須已在相關的NSManagedObjectModel與持久存儲協調對象。如果storeURL的商店不存在,它將被創建;否則會被打開。

相關問題