我是否需要启用WAL模式将.SQLite从bundle复制到Document目录?

时间:2017-03-23 21:39:28

标签: ios xcode core-data

我当前的应用程序仅复制.sqlite文件(WAL MODE = DELETE)。 一切顺利,新复制的myfile.sqlite也完美包含数据。

执行获取请求时,执行没有错误,BOOL(成功)为1。但返回的数组总是EMPTY。

https://www.appcoda.com/core-data-preload-sqlite-database/

本教程告诉我,我需要将3个文件(.sqlite , .sqlite-wal , .sqlite-shm)复制到文档目录中。

这是否意味着我需要启用WAL模式并从头开始重新执行所有操作?在Xcode 10中,我们仍然无法复制1个.sqlite文件?有人可以澄清一下吗?

1 个答案:

答案 0 :(得分:0)

假设您的意思是日记帐模式,而不是WAL MODE(并且您的意思是Xcode 8.x,因为Xcode 10还不存在),不需要复制任何其他文件或改变模式。将日记帐模式设置为DELETE时,只有一个文件。您不需要创建额外的文件来进行复制。

但是您可能会遇到其他一些问题,您应该检查这些问题,并在必要时发布有关以下问题的其他问题:

  • 也许复制阶段实际上并没有你想象的那么完美。
  • 也许您没有将SQLite文件添加到持久性商店协调员 - 因此在您进行提取时它不可用。
  • 可能您的提取配置错误,并且正在尝试获取不存在的数据。

至于你的问题,不,你不需要复制其他文件,或更改日记模式以强制存在其他文件。