Iphone 从核心数据存储创建.sqlite文件?

Iphone 从核心数据存储创建.sqlite文件?,iphone,sqlite,core-data,ios,Iphone,Sqlite,Core Data,Ios,我在提供.sqlite文件供下载的书籍和网站上看到过教程。sqlite文件用于核心数据 如何从桌面上的应用程序或核心数据存储中获取.sqlite文件?这些可能会有所帮助:我喜欢使用这个Firefox插件: 您可以创建一个新的.sqlite文件,更改现有数据库,并浏览您的数据。有一个命令行程序可从(标准下载中)下载,可用于创建具有架构的空白数据库。通常,数据库文件在操作系统和设备之间是兼容的。如果要创建预填充的sqlite文件以用于核心数据,则必须使用核心数据创建它。创建用于数据输入的基本桌面应

我在提供.sqlite文件供下载的书籍和网站上看到过教程。sqlite文件用于核心数据


如何从桌面上的应用程序或核心数据存储中获取.sqlite文件?

这些可能会有所帮助:

我喜欢使用这个Firefox插件:


您可以创建一个新的.sqlite文件,更改现有数据库,并浏览您的数据。

有一个命令行程序可从(标准下载中)下载,可用于创建具有架构的空白数据库。通常,数据库文件在操作系统和设备之间是兼容的。

如果要创建预填充的sqlite文件以用于核心数据,则必须使用核心数据创建它。创建用于数据输入的基本桌面应用程序并使用它创建文件,然后将其嵌入到iOS设备中是很简单的


不要试图手动复制文件中的数据结构或链接。你可能会让它工作,但你会花更多的时间试图让它工作,它最终会失败。应将核心数据sqlite文件的内部结构视为私有API。该结构不是公共的,可以在不通知的情况下更改。

如果您特别尝试创建核心数据存储,请使用以下方法:

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

您必须已经将NSManagedObjectModel与持久存储协调器对象关联。如果
storeURL
上的存储不存在,将创建该存储;否则,它将被打开。

如果您需要一种创建CoreData SQLite存储的方法,请注意建议使用SQLite工具的答案。您需要编写或修改CoreData应用程序,以从另一种格式(如平面文件、CSV等)导入数据,可能需要使用
NSScanner
。这意味着您下载的sqlite文件本身就是由Core data创建的。要创建自己的,您需要设置核心数据堆栈,然后将数据导入其中。虽然从理论上讲,您可以创建一个sqlite文件,核心数据只需使用SQL命令即可从头开始使用,但实际上,获取数据文件是一种困难而脆弱的方法。核心数据SQLAPI是私有的和可变的。这几乎是不可能复制的。使用读取文件时使用的核心数据生成文件总是更容易、更干净的,所以我在XCode中生成核心数据模型和类,然后从中导出sqlite文件?如何实现?创建一个用于数据输入的普通桌面应用程序或一个可以将数据导入的命令行应用程序。取决于数据来自何处,以确定最佳路径。我想让未来的读者对同一个问题给出一个非常好的答案:为了让它进入你的桌面,在模拟器中运行它,并在应用程序包内容中找到*.sqlite。在模拟器中输入数据比编写一个简单的OS X应用程序来创建数据更痛苦。虽然知道如何检索sqlite文件很有用,但我不建议将其作为生成预填充数据库的好方法。