2

所以我正在将我的核心数据迁移到 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");
    }
}];
4

1 回答 1

0

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

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

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

于 2013-03-19T00:10:11.677 回答