核心数据 - 在设备上修改数据库时崩溃

时间:2013-05-03 20:56:42

标签: iphone ios sqlite core-data read-write

我有一个使用Core Data的应用程序在模拟器上工作正常但在设备上崩溃。我看过有关将sqlite文件的读/写副本从主bundle复制到库中的帖子,但它仍然崩溃。当我保存新对象或修改现有对象时,它会崩溃,但只会在某些实体(但不是所有实体)上运行(?!)。它在模拟器上很好。在对象保存并弹出到委托视图控制器后得到的错误是:

  

由于未捕获的异常而终止应用   'NSInvalidArgumentException',原因:'ALL的左侧   或者任何运算符必须是NSArray或NSSet。'

我已将以下代码添加到AppDelegate中,但没有明显的效果:

NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"BCP" ofType:@"sqlite"];
    NSURL *storeURL = [NSURL fileURLWithPath:dbPath];
  NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    NSString *targetPath = [libraryPath stringByAppendingPathComponent:@"BCP.sqlite"];

    if (![[NSFileManager defaultManager] fileExistsAtPath:targetPath]) {
        // database doesn't exist in your library path... copy it from the bundle

        NSError *error = nil;

        if (![[NSFileManager defaultManager] copyItemAtPath:dbPath toPath:targetPath error:&error]) {
            NSLog(@"Error: %@", error);
        }
    }

0 个答案:

没有答案