68

iOS 7 での修正のために Core Data ベースのアプリの更新を準備しています。Xcode 5 と iOS 7 SDK GM を使用しています。しかし、永続ストア ( ) の動作が異なることに気付きました。iOS 7 ビルドの前は、ドキュメント フォルダーにUIManagedDocument1 つのファイルしかありませんでした (2 つ目のファイルが存在する場合もありました)。persistentStorepersistentStore-journal

iOS 7 ビルド (クリーン インストール) には、永続ストア用の 3 つのファイルがあります。

  • persistentStore
  • persistentStore-wal
  • persistentStore-shm

Apple はジャーナルモードをデフォルトで WAL に変更しましたか? アプリに影響があるのでしょうか (ユーザーが前回のバージョンから更新する方法を考えてみてください)。WAL を無効にするのが最善でしょうか?もしそうなら、どうすれば iOS 7/ でこれを行うことができUIManagedDocumentますか?

4

1 に答える 1

98

はい、Apple はデフォルトのジャーナル モードを iOS7 の WAL に変更しました。addPersistentStoreWithType:configuration:url:options:error を呼び出すときにオプションに NSSQLitePragmasOption を追加することで、ジャーナル モードを指定できます。たとえば、DELETE の以前のデフォルト モードを設定するには:

NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} };

私の経験では、WAL の方がパフォーマンスが向上しますが、次の投稿も参照してください。

iOS CoreData - sqlite WAL / Write-Ahead Logging を有効にするデメリットはありますか

于 2013-09-18T11:14:07.343 に答える