我正准备更新基于Core Data的应用程序以修复iOS 7.我使用Xcode 5和iOS 7 SDK GM。但是我意识到持久性存储的不同行为(它是UIManagedDocument
):在iOS 7构建之前,文档文件夹中只有一个文件persistentStore
(有时会有第二个{{1} }})。
在iOS 7版本(干净安装)中,持久存储现在有三个文件:
persistentStore-journal
persistentStore
和persistentStore-wal
Apple现在默认将日记模式更改为WAL吗?我想知道我的应用程序是否有影响(想想用户如何从上一版本更新)?是否最好禁用WAL - 如果是这样,我如何使用iOS 7 / persistentStore-shm
执行此操作?
答案 0 :(得分:95)
是的,Apple已将默认日志模式更改为iOS7的WAL。 您可以通过在调用addPersistentStoreWithType:configuration:url:options:error时将NSSQLitePragmasOption添加到选项来指定日志模式。例如。设置以前的默认DELETE模式:
NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} };
根据我的经验,WAL提供了更好的性能,但也看到了这篇文章:
iOS CoreData - are there any disadvantages to enabling sqlite WAL / Write-Ahead Logging