Код ошибки SQLite: 14, "невозможно открыть файл базы данных"

Вопрос:

В моем приложении для cocoa я использую основные данные для сохранения всех моих данных. Но некоторое время, я получаю ниже заданную проблему.

Выпуск:

CoreData: error: (14) I/O error for database at /Users/my-mac/Documents/FileT.sqlite.  SQLite error code:14, 'unable to open database file'

Здесь я дал ссылку на код для persistentStoreCoordinator:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}



NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory]
stringByAppendingPathComponent: @"FileT.sqlite"]];

NSError *error = nil;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
initWithManagedObjectModel:[self managedObjectModel]];
options = @{
NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES
};


if(![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil URL:storeUrl options:options error:&error]) {
/*Error for store creation should be handled in here*/
}

return _persistentStoreCoordinator;

}

Может ли кто-нибудь предположить, чего я здесь не вижу?

Лучший ответ:

Взгляните на Технический Q & A 1809: Новый режим ведения журнала по умолчанию для хранилищ данных Core Data в iOS 7 и OS X Mavericks

Приложение может перемещать или изменять файлы журнала WAL или файлы SQLite или, возможно, сделало предположения о структуре файла, которая была действительна для версий Core Data, которые не использовали WAL.

Также возможно, что ваша база данных SQLite повреждена, а ошибка 14 – SQLite, пытающаяся восстановить файл, когда Core Data откроет его. Эта коррупция может произойти, если приложение не закрывалось должным образом при записи, и многие другие обстоятельства. Неправильное закрытие – наиболее распространенный случай на платформах Apple, хотя, например, если Core Data записывает записи, а ОС убивает приложение, потому что оно не отвечает. Это может привести к коррупции.

Оцените статью
TechArks.Ru
Добавить комментарий