在我的可可应用程序中,我正在使用核心数据来维护我的所有数据。但有一段时间,我得到以下给定的问题。
问题:
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;
}
有人可以建议我在这里想念的吗?
看看技术问答1809:iOS 7和OS X Mavericks中Core Data SQLite存储的新默认日记模式
您的应用程序可能正在移动或更改WAL日记文件或SQLite文件,或者可能已对适用于不使用WAL的Core Data版本有效的文件结构进行了假设。
您的SQLite数据库也可能已损坏,错误14是SQLite在Core Data打开文件时尝试修复该文件。如果在进行写操作时未正确关闭应用程序以及许多其他情况,则可能会发生这种损坏。但是,在Apple平台上最不常见的情况是无法正常关闭-例如,如果Core Data正在写入记录,并且操作系统由于无响应而杀死了该应用程序。那会导致腐败。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句