Core Data y iOS 7: diferente comportamiento de la tienda persistente

Estoy preparando una actualización para una aplicación basada en Core Data para correcciones con iOS 7. Utilizo Xcode 5 y iOS 7 SDK GM. Sin embargo, me di count de un comportamiento diferente de la tienda persistente (que es un UIManagedDocument ): Antes de las comstackciones de iOS 7, solo había un file persistentStore en la carpeta de documentos (a veces había un segundo persistentStore-journal ).

En las comstackciones de iOS 7 (installation limpia), ahora hay tres files para la tienda persistente:

  • persistentStore
  • persistentStore-wal y
  • persistentStore-shm

¿Apple cambió el modo diario por defecto a WAL ahora? Me pregunto si hay un impacto en mi aplicación (¿piensa en los usuarios cómo actualizar desde la última versión)? Sería mejor deshabilitar WAL, y si es así, ¿cómo puedo hacer esto con iOS 7 / UIManagedDocument ?

Sí, Apple cambió el modo de diario pnetworkingeterminado a WAL para iOS7. Puede especificar el modo diario añadiendo NSSQLitePragmasOption a las opciones al llamar a addPersistentStoreWithType: configuration: url: options: error. Por ejemplo, para configurar el modo pnetworkingeterminado anterior de ELIMINAR:

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

En mi experiencia, WAL ofrece un mejor performance, pero también ve este post:

iOS CoreData: ¿hay alguna desventaja para habilitar sqlite WAL / Write-Ahead Logging