Я готовлю обновление для приложения на основе Core Data для исправлений с iOS 7. Я использую Xcode 5 и iOS 7 SDK GM. Однако я понял другое поведение постоянного хранилища (это UIManagedDocument
): до сборки iOS 7 в папке документов был только один файл persistentStore
(иногда был второй persistentStore-journal
).
В iOS 7 build (чистая установка) теперь есть три файла для постоянного хранилища:
persistentStore
persistentStore-wal
иpersistentStore-shm
По умолчанию Apple изменила режим журнала на WAL? Интересно, есть ли влияние на мое приложение (подумайте о том, как пользователи обновляют последнюю версию)? Было бы лучше отключить WAL - и если да, то как я могу сделать это с iOS 7/ UIManagedDocument
?
Да, Apple изменила режим журнала по умолчанию на WAL для iOS7. Вы можете указать режим журнала, добавив NSSQLitePragmasOption к параметрам при вызове addPersistentStoreWithType: configuration: url: options: error. Например. для установки предыдущего режима DELETE по умолчанию:
NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} };
По моему опыту, WAL дает лучшую производительность, но также видит этот пост:
journal_mode
в journal_mode
проверьте sqlite.org/pragma.html для всех вариантов.