猿问

核心数据和iOS 7:持久存储的不同行为

我正在为基于Core Data的应用程序准备更新,以修复iOS7。我使用Xcode 5和iOS 7 SDK GM。但是,我意识到持久性存储的另一种行为(是UIManagedDocument):在iOS 7构建之前,persistentStoredocuments文件夹中只有一个文件(有时还有一个persistentStore-journal)。


在iOS 7构建(全新安装)中,持久性存储现在有三个文件:


persistentStore

persistentStore-wal 和

persistentStore-shm

苹果现在是否默认将日记模式更改为WAL?我想知道对我的应用程序是否有影响(想想用户如何从最新版本进行更新)?最好禁用WAL-如果是这样,我该如何使用iOS 7 / UIManagedDocument?


三国纷争
浏览 505回答 2
2回答

繁花如伊

是的,Apple已将iOS7的默认日记模式更改为WAL。您可以通过在调用addPersistentStoreWithType:configuration:url:options:error时将NSSQLitePragmasOption添加到选项中来指定日志模式。例如,设置先前的默认删除方式:NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} };

RISEBY

这是推出此功能的可怕方法。Apple应该比自动启用此功能更好。现在要创建数据库备份,用户必须同时拥有两个文件。.在ios7更新后,他们从备份中还原ios设备时,我发现有数百个用户松散数据,只是发现WAL文件丢失,因此所有数据由于移至ios 7的方式已经不复存在...只需将设备升级至ios7即可更改所有应用程序存储数据的方式。谁认为这是一个很好的“默认值” 
随时随地看视频慕课网APP

相关分类

iOS
我要回答