UIManagedDocument openWithCompletionHandler返回NO

时间:2013-01-15 17:25:13

标签: ios core-data-migration uimanageddocument

所以我将我的核心数据迁移到UIManagedDocument。

在iPhone模拟器上调用openWithCompletionHandler工作正常,但是当我尝试在真实设备上运行我的项目时,它总是返回NO。我重写handleError,这就是我得到的:

    Error Domain=NSCocoaErrorDomain Code=260 
"The operation couldn’t be completed. (Cocoa error 260.)" 
UserInfo=0x1edafa90 {path=file://localhost/var/mobile/Applications/D57D7EAC-6E92-4CAD-97E7-179010CB6738/Project%20APP.app/DataModel.momd/StoreContent.nosync, NSUnderlyingError=0x1ed8e160 
"The operation couldn’t be completed. (Cocoa error 513.)", reason=Unable to restore path to store content}

这就是我所说的:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                          PrivateName, NSPersistentStoreUbiquitousContentNameKey,
                         //   cloudURL, NSPersistentStoreUbiquitousContentURLKey,
                         [NSNumber numberWithBool:YES],
                         NSMigratePersistentStoresAutomaticallyOption,
                         [NSNumber numberWithBool:YES],
                         NSInferMappingModelAutomaticallyOption,
                         nil];
[self setPersistentStoreOptions:options];


[self openWithCompletionHandler:^(BOOL success) {
    if (success)
    NSLog(@"opened");
    else {
        NSLog(@"Not opened");
    }
}];

1 个答案:

答案 0 :(得分:0)

如果您尝试在iCloud中打开文档,则需要在persistentStoreOptions中设置NSPersistentStoreUbiquitousContentNameKeyNSPersistentStoreUbiquitousContentURLKey - 您当前已注释掉NSPersistentStoreUbiquitousContentURLKey。

如果您尝试打开设备本地的文档,则您希望这些选项中都没有设置这些键。

我猜你的情况是这可以在模拟器上运行,但不适用于设备,因为模拟器目前无法在iCloud中打开文档。另一方面,设备能够在iCloud中打开文档,而你没有给它足够的信息来正确地做到这一点,所以它的borking。