在iPhone和iPad之间复制Core Data数据库时,为什么会出现写入错误?

时间:2010-08-12 14:21:10

标签: iphone ipad core-data

在我的应用程序中,我创建并使用普通的持久存储:

- (NSPersistentStoreCoordinator *) persistentStoreCoordinator {
    //  D_IN;   
    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];

    // Allow inferred migration from the original version of the application.
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                             [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

    NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Dances005.sqlite"]];




    NSError *error = nil;

    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl 
                                                        options:options error:&error]){
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);


    }
    //  D_OUT;

    return persistentStoreCoordinator;

..没什么特别的。它包含几个NSData对象 - 所有核心数据都符合iPhone和iPAD。

我在iPhone上创建文件,并希望将其复制到iPAD。当我在iPAD上打开相同的应用程序时,它使用复制的sqlite并且只要它读取/提取就可以正常工作。一旦我更改了数据并需要存储,我就会收到以下错误:

Unresolved error Error Domain=NSCocoaErrorDomain Code=256 UserInfo=0x6a2b7a0 "Operation could not be completed. (Cocoa error 256.)", {
    NSFilePath = "/var/mobile/Applications/294B329D-D287-4012-A551-4E7348624225/Documents/Dances005.sqlite";
    NSUnderlyingException = error during SQL execution : attempt to write a readonly database;

目前我使用iPhoneExplorer,只需从iPhone拖动文件 - > MAC - > iPad兼容。我用iFile检查了rw属性,它们是iPAD上用户的rw。 (与iPhone相同)

这可能是什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

Apple不支持iPhoneExplorer,“只需从iPhone拖动[ging]文件 - >不支持MAC - > iPAD”。如果要在iPad应用程序中包含该文件,请将其作为捆绑包的一部分包含在内,或使用其他机制传输文件。