Удаление режима ведения журнала CoreData без миграции в новое хранилище

Поскольку MagicalRecord 3.0 еще не был выпущен, я обновился до 2.3 и попытался "отключить" режим ведения журнала. Это мой код:

    //  Code to disable journaling mode
NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];

NSString *applicationDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *urlString = [applicationDocumentsDirectory stringByAppendingPathComponent: @"saori.sqlite"];
NSURL *url = [NSURL fileURLWithPath:urlString];
NSDictionary *options = @{NSSQLitePragmasOption:@{@"journal_mode":@"DELETE"}};
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];
[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil  URL:url options:options error:nil];

Происходит то, что он не только НЕ отключает режим ведения журнала, но и создает совершенно новое (читаемое пустое) хранилище CoreData с ведением журнала.

Могу ли я что-нибудь сделать за пределами MR 3.0, чтобы содержимое журнала, в котором хранится журнал, переносилось в новое хранилище CoreData без ведения журнала?

1 ответ

Решение

MagicalRecord 3.0 не изменится, работает это или нет. Это функция CoreData. MR 3.0 предоставит вам возможность указать опции для добавления определенного магазина, так что это меньше кода. Но тот факт, что режим Журналирование или режим WAL является проблемой, является основополагающим для работы самого CoreData. И в этом случае переход на MR3, вероятно, не поможет вам.

Другие вопросы по тегам