我是否需要启用WAL模式将.SQLite从包复制到Document目录?
我目前的应用程序只能复制.sqlite文件(WAL MODE = DELETE)
。 一切顺利,新复制的myfile.sqlite也包含完美的数据。
当我执行一个获取请求时,执行没有错误,BOOL(成功)是1。 但是返回的数组总是EMPTY。
Core Data Basics: Preload Data and Use Existing SQLite Database
本教程告诉我,我需要将3个文件( .sqlite , .sqlite-wal , .sqlite-shm
)复制到Document目录中。
这是否意味着我需要启用WAL模式并从头开始重新执行所有操作? 在Xcode 10中,我们仍然无法复制一个.sqlite文件? 有人可以澄清这一点?
假设你的意思是日记模式,而不是WAL MODE
(你的意思是Xcode 8.x,因为Xcode 10还不存在),否则你不需要复制任何额外的文件或改变模式。 将日记模式设置为DELETE
,只有一个文件。 您不需要创build额外的文件来进行复制工作。
但是还有其他一些问题,你应该检查一下,如果有必要的话,还可以附加一些问题:
- 也许复制阶段实际上并不像你想的那样完美。
- 也许你并没有将SQLite文件添加到持久存储协调器中 – 所以在执行提取时它不可用。
- 也许你的读取configuration错误,并试图获取不存在的数据。
至于你的问题,不,你不需要复制其他文件,或更改日记模式强制其他文件存在。