【问题标题】:Creating .sqlite file from Core Data store?从核心数据存储创建 .sqlite 文件?
【发布时间】:2011-03-21 20:44:18
【问题描述】:

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

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

【问题讨论】:

  • 如果您正在寻求一种创建 CoreData SQLite 存储的方法,请注意建议使用 SQLite 工具的答案。您需要编写或调整 CoreData 应用程序以从其他格式(例如平面文件、CSV 等)导入数据,可能使用 NSScanner

标签: iphone sqlite core-data ios


【解决方案1】:

如果您要创建一个预填充的 sqlite 文件以与 Core Data 一起使用,那么您必须使用 Core Data 创建它。创建一个用于数据输入的基本桌面应用程序并使用它来创建文件然后将其嵌入到您的 iOS 设备中是微不足道的。

请勿尝试手动复制文件中的数据结构或链接。你可能会让它工作,但你会花更多的时间试图让它工作,它最终会失败。 Core Data sqlite 文件的内部结构应该被视为私有 API。结构不公开,如有更改,恕不另行通知。

【讨论】:

  • 他的意思是你下载的sqlite文件是自己由Core Data创建的。要创建自己的,您需要设置核心数据堆栈,然后将数据导入其中。虽然理论上,您可以创建一个 SQLite 文件,Core Data 可以仅使用 SQL 命令从头开始使用,但实际上这是获取数据文件的一种困难且脆弱的方式。 Core Data SQL API 是私有的和可变的。复制几乎是不可能的。使用您将用于读取文件的核心数据生成文件总是更容易和更清晰。
  • 所以我在 XCode 中生成 Core Data 模型和类,然后以某种方式从中导出一个 sqlite 文件?怎么样?
  • 创建一个简单的桌面应用程序用于数据输入或一个命令行应用程序,您可以将数据导入其中。取决于数据的来源来确定最佳路线。
  • 我想引导未来的读者对同一问题给出一个很好的答案:stackoverflow.com/questions/7057622/… 为了将它放到您的桌面,在模拟器中运行它并在应用程序中找到 *.sqlite包装内容。
  • 在模拟器中输入数据比编写一个琐碎的 OS X 应用程序来创建数据更痛苦。虽然知道如何检索 sqlite 文件很有用,但我不建议将其作为生成预填充数据库的好方法。
【解决方案2】:

如果您专门尝试创建 Core Data 存储,请使用此方法:

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

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

【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:

      我喜欢使用这个 Firefox 插件: https://addons.mozilla.org/en-US/firefox/addon/5817/

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

      【讨论】:

        【解决方案5】:

        有一个可以从sqlite.org 下载的命令行程序(在标准下载中),可用于创建带有模式的空白数据库。通常数据库文件是跨操作系统和设备兼容的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-28
          • 2013-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-30
          相关资源
          最近更新 更多