在另一个项目中使用已创建的核心数据库

时间:2013-08-30 08:05:12

标签: iphone ios

我已经在我的项目中实现了核心数据,并且还能够获得应用程序创建的sqlite数据库。但是,现在我想在另一个应用程序中使用此数据库(通过核心数据创建)。我能够将sqlite文件复制到新应用程序的documents文件夹中。但无法将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();
}

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

有谁知道,我哪里错了?

0 个答案:

没有答案