3

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

  1. 一个空的 .sqlite 文件

  2. 一个 .sqlite-wal 文件

  3. 一个 .sqlite-shm 文件。

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

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

4

5 回答 5

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,打开窗口,从菜单 Tools > Sqlite Manager

  3. 使用 SQLite Manager 打开数据库:桌面​​ > StoreContent > PersistentStore
  4. 从菜单 > 压缩数据库选项中选择。
  5. 从菜单中选择 > 关闭数据库
  6. 完毕!它们结合在一起。
于 2014-01-07T19:21:32.653 回答
1

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

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

我希望这对遇到此问题的其他人有所帮助。

干杯

于 2013-10-25T17:06:57.763 回答
0

只尝试 sqlite 文件。看看是否有效,将另外两个一个一个添加。

于 2013-10-25T12:35:46.270 回答
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 模拟器中从您的应用程序目录中打开您的 coredata .sqlite
  3. 使用将生成 1 个 .sqlite 文件的紧凑型数据库 :)
  4. 现在您可以使用旧方法(XCode 5 之前)将 .sqlite 包含到您的应用程序中
于 2013-12-29T15:08:27.483 回答
0

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

于 2013-10-25T12:58:31.860 回答