0

我已经在我的项目中实现了核心数据,并且还能够获取应用程序创建的 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();
}

它给出了这个错误:“用于打开商店的模型与用于创建商店的模型不兼容”。

有谁知道,我错在哪里?

4

0 回答 0