如何使用sqlite文件将数据预加载到iOS应用程序中

时间:2013-10-25 12:11:38

标签: ios xcode sqlite core-data

在新的Xcode 5构建之前,我能够通过引用项目中的文件将数据预加载到我的核心数据驱动的应用程序中。但是,自从我升级XCode以来,我的json数据现在被保存为3个文件:

  1. 一个空的.sqlite文件

  2. a .sqlite-wal文件

  3. 一个.sqlite-shm文件。

  4. 如何将此数据导入我的应用程序?

    过去我所要做的就是复制sqlite文件,我就完成了。现在,我不知道我应该复制什么文件。

5 个答案:

答案 0 :(得分:2)

我可以使用@Lukasz Kowalski提供的FIREFOX插件确认“压缩”数据库,这里用10.9.1 / Xcode 5 / iOS 7确认。澄清程序...... 下载Firefox,然后获取他的SQLite Manager插件。

  1. 将包含PersistentStore,PersistentStore-wal和PersistentStore-shm文件的StoreContent文件夹复制到桌面,以便重新组合成单​​个iOS7之前的UIManagedDocument数据库,该数据库与以前一样。在哪里找到:

    ~/Library/ApplicationSupport/iPhoneSimulator/7.xx/Applications/gobble-d-gook/APPNAME/Documents/APPNAMEDatabase/StoreContent/{your database files}
    
  2. 从菜单工具>启动Firefox,打开窗口。 Sqlite经理

  3. 使用SQLite Manager打开数据库:desktop> StoreContent> PersistentStore
  4. 从菜单中选择>压缩数据库选项。
  5. 从菜单中选择>关闭数据库
  6. 完成!它们结合在一起。

答案 1 :(得分:1)

我从苹果公司的开发者网站上发现,为了让核心数据以旧的方式运行(iOS 7之前),并且只生成sqlite文件,我不得不将其添加到persistentStore addStore方法,在选项参数。

 @{ NSSQLitePragmasOption : @{ @"journal_mode" : @"DELETE" } }

我希望这可以帮助遇到此问题的其他人。

干杯

答案 2 :(得分:0)

尝试使用sqlite文件。看看它是否有效,将其他两个逐一添加。

答案 3 :(得分:0)

您还可以将JSON保存在txt文件中,并在加载时将其解析为Core Data。根据您拥有的数据量,您应该批量执行此操作,第一批批处理大小足以填充第一个视图,然后继续解析其余视图。所有人都在后台排队。 不像以前那么容易,但这是一个解决方案。也许其他人有更好的解决方案?

答案 4 :(得分:0)

当你有3个文件时,我找到了创建1 .sqlite文件的解决方案:.sqlite,.sqlite-wal和.sqlite-shm。要做到这一点,你应该使用Firefox的“SQLite Manager”插件(https://addons.mozilla.org/pl/firefox/addon/sqlite-manager/?src=userprofile):

  1. 在Firefox中安装并运行插件
  2. 在iPhone模拟器
  3. 中打开您的应用目录中的coredata .sqlite
  4. 使用Compact Database生成1 .sqlite文件:)
  5. 现在您可以使用旧方法(在XCode 5之前)将.sqlite包含到您的应用程序中