Я проверяю свое приложение на iOS9.NSPersistentStoreCoordinator addPersistentStoreWithType: ошибка метода без journal_mode iOS 9
Проблема возникает, когда я пытаюсь сбросить базу данных.
Смотрите ниже код: (ИТС) AppDelegate
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if(persistentStoreCoordinator == nil)
{
....
....
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
[persistentStoreCoordinator lock];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
}
[persistentStoreCoordinator unlock];
}
return persistentStoreCoordinator;
}
Здесь варианты ..
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,nil];
Этот код прекрасно работает с iOS8 и ниже. Но когда я запускаю его с iOS9, следующее исключение.
CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Containers/Data/Application/…..sqlite options:{ NSInferMappingModelAutomaticallyOption = 1; NSMigratePersistentStoresAutomaticallyOption = 1; } ... returned error Error Domain=NSCocoaErrorDomain Code=522 "(null)" UserInfo={NSUnderlyingException=I/O error for database at /var/mobile/Containers/Data/Application/….sqlite. SQLite error code:522, 'not an error', NSSQLiteErrorDomain=522} with userInfo dictionary { NSSQLiteErrorDomain = 522; NSUnderlyingException = "I/O error for database at /var/mobile/Containers/Data/Application/….*.sqlite. SQLite error code:522, 'not an error'"; }
Но если добавить пару ключ-значение, как "journal_mode" = "MEMORY"
в моей существующей «варианты» словаря, эта ошибка не происходит.
Вопрос:
Что "journal_mode" означает в словаре вариантов? Это реальная проблема в моем случае?
Это происходит со мной! сделал ли journal_mode какой-либо другой вопрос обеспечения? –
Я так не думаю – Confused
В моем случае я обнаружил, что iOS9 создает еще 2 файла, при удалении БД мне пришлось удалить их все, чтобы заставить его работать –