所以我将我的核心数据迁移到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"); } }];
答案 0 :(得分:0)
如果您尝试在iCloud中打开文档,则需要在persistentStoreOptions中设置NSPersistentStoreUbiquitousContentNameKey
和NSPersistentStoreUbiquitousContentURLKey
- 您当前已注释掉NSPersistentStoreUbiquitousContentURLKey。
如果您尝试打开设备本地的文档,则您希望这些选项中都没有设置这些键。
我猜你的情况是这可以在模拟器上运行,但不适用于设备,因为模拟器目前无法在iCloud中打开文档。另一方面,设备能够在iCloud中打开文档,而你没有给它足够的信息来正确地做到这一点,所以它的borking。