Cocoa touch UIManagedDocument是否处理冲突

Cocoa touch UIManagedDocument是否处理冲突,cocoa-touch,core-data,icloud,uimanageddocument,Cocoa Touch,Core Data,Icloud,Uimanageddocument,UIManagedDocument是否为我处理行级冲突,或者我是否需要处理这些冲突,他的答案是它确实处理行级冲突。也许我误解了他,但我看不到这一点 所以我想问几个关键问题,希望在这里得到一些澄清,这也是UIManagedDocument 如果我的表作者有名字和姓氏字段,如果: A) 我和作者“Jon Do”发生了争执,它已同步到两台设备。然后我将一台设备上的名字从'Jon'编辑为'John',将另一台设备上的姓氏从'Do'编辑为'Doe'。iCloud和UIManagedDocument将如何处

UIManagedDocument是否为我处理行级冲突,或者我是否需要处理这些冲突,他的答案是它确实处理行级冲突。也许我误解了他,但我看不到这一点

所以我想问几个关键问题,希望在这里得到一些澄清,这也是UIManagedDocument

如果我的表作者有名字和姓氏字段,如果: A) 我和作者“Jon Do”发生了争执,它已同步到两台设备。然后我将一台设备上的名字从'Jon'编辑为'John',将另一台设备上的姓氏从'Do'编辑为'Doe'。iCloud和UIManagedDocument将如何处理此问题?为了处理冲突,我是否会收到需要回复的通知?我尝试了以下代码,但从未收到通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_ondocumentStateChangedNotification:) name:UIDocumentStateChangedNotification object:self.openedDoc];
B) 如果我向这两个设备添加了不同的作者,那么现在有两行要合并,UIManagedDocument会为我处理吗?还是我需要自己做些什么?如果我需要自己做什么,我需要做什么?我试着注册了NSpersistentStoreDidImportubiQuantiousContentChangesNotification,但我似乎也没有成功。我应该在哪种环境下注册?我试过这个:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_onPersistentStoreDidImportUbiquitousContentChanges:) name:NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject:self.openedCaddy.managedObjectContext.parentContext];
我还需要自己处理UIManagedDocument的NSManagedObjectContextDidSaveNotification,还是UIManagedDocument为我处理


非常感谢所有的帮助,我在这里真的很挣扎。在iOS 5发布时,我采用了iCloud和UIManagedDocument,虽然当时缺少文档,但我还是摸索了一条路,但成功推出了一款产品,但现在我希望iCloud真正发挥作用,而不是简单地采用赢家通吃的文档同步方法。

我找到了答案<代码>UIManagedDocument处理行级冲突

我从未看到任何名称:
NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject
通知的原因是我没有正确设置moc的持久存储选项。要获取核心数据以开始同步,您必须至少设置以下选项:
NSPersistentStoreUbiquitousContentNameKey
&
NSPersistentStoreUbiquitousContentURLKey

当我两年前第一次开始使用iCloud时,我一直认为对
setUbiouse:ItemAttribute:destinationURL:error:
的调用为我做到了这一点,并且是等效的,但事实并非如此
SetUbiously:ItemAttribute:destinationURL:error:
只是告诉iCloud在该URL上同步文件,它对核心数据不做任何处理—想想dropbox。要使UIManagedDocument的核心数据部分同步,需要设置这两个选项

我已经启动了一个github repo,它澄清了其中的一些问题,并使使用
UIManagedDocument
启动和运行变得更加容易


希望这能帮助其他人。我觉得很傻,没能早点意识到这一点,但两年前我第一次在iOS 5上实现iCloud sync时,文档很少,iCloud工作不太好,所以我认为我的行为是正常的。

我发现了这一点<代码>UIManagedDocument处理行级冲突

我从未看到任何名称:
NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject
通知的原因是我没有正确设置moc的持久存储选项。要获取核心数据以开始同步,您必须至少设置以下选项:
NSPersistentStoreUbiquitousContentNameKey
&
NSPersistentStoreUbiquitousContentURLKey

当我两年前第一次开始使用iCloud时,我一直认为对
setUbiouse:ItemAttribute:destinationURL:error:
的调用为我做到了这一点,并且是等效的,但事实并非如此
SetUbiously:ItemAttribute:destinationURL:error:
只是告诉iCloud在该URL上同步文件,它对核心数据不做任何处理—想想dropbox。要使UIManagedDocument的核心数据部分同步,需要设置这两个选项

我已经启动了一个github repo,它澄清了其中的一些问题,并使使用
UIManagedDocument
启动和运行变得更加容易

希望这能帮助其他人。我觉得很傻,没有早点意识到这一点,但当我两年前第一次在iOS 5上实现iCloud同步时,文档很少,iCloud工作得不太好,所以我认为我的行为是正常的