我想用SQL数据存储区运送我的应用程序,但是现在,因为Apple已经引入了WAL日记功能,这使得3个文件而不是一个,所以我想知道我是否应该发送所有3个文件,或者我可以尝试强制SQL创建一个检查点,将它们全部合并到一个.sql文件中。
我真的很想使用这个新的iOS 7功能,所以回到滚动日记对我来说不是一种方式。
答案 0 :(得分:3)
要强制SQLite创建检查点,请执行PRAGMA wal_checkpoint。
或者,使用journal_mode = DELETE
发送数据库,并在安装文件后更改模式。
在任何情况下,只发送所有文件都没有问题。
(-shm
文件不包含永久数据,可以忽略。)
答案 1 :(得分:2)
您不必使用WAL,这只是默认设置。您可以切换到其他模式。添加持久性存储时,将options
参数设置为
NSDictionary *options = @{ @"journal_mode": @"DELETE" };
然后,您将获得与早期版本的iOS相同的日记行为。在创建预先填充的数据存储时使用此选项,您无需处理额外的日志文件。