我已经在我的项目中实现了核心数据,并且还能够获取应用程序创建的 sqlite 数据库。但是,现在我想在另一个应用程序中使用这个数据库(通过核心数据创建)。我可以将 sqlite 文件复制到新应用程序的文档文件夹中。但无法NSPersistentStoreCoordinator
与数据库关联。
这是我的代码:
if (_persistentStoreCoordinator != nil ) return _persistentStoreCoordinator;
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Mall.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL success = [fileManager fileExistsAtPath:[storeURL path]];
NSError *error1;
NSURL *defaultDBURL;
if(!success) {
defaultDBURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"MallDB" ofType:@"sqlite"]];
if (defaultDBURL)
success = [fileManager copyItemAtURL:defaultDBURL toURL:storeURL error:&error1];
if (!success)
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error1 localizedDescription]);
}
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
它给出了这个错误:“用于打开商店的模型与用于创建商店的模型不兼容”。
有谁知道,我错在哪里?