2010-07-27 68 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的商店不存在,它将被创建;否则会被打开。

相关问题