何时以及如何检测iCloud冲突?

时间:2012-03-05 14:20:34

标签: iphone conflict icloud

我使用iCloud在我的应用程序中的设备之间同步用户xml文件,使用UIDocument子类,类似于问题中的代码:http://stackoverflow.com/questions/7795629/icloud-basics-and-code -样品。但我不确定何时以及如何发现冲突。我阅读了sdk doc并搜索了互联网,但似乎没有找到任何有详细信息的信息。似乎我们可以使用一些代码                 NSNumber *冲突;                 [url getResourceValue:& conflicted forKey:NSURLUbiquitousItemHasUnresolvedConflictsKey error:nil];

但在我的应用程序中,似乎总是给“冲突”的真正价值? 我也不确定何时应该检测到冲突,我的猜测是在调用UIDocument子类的contentsForType方法之前。如果有人能给出任何可能很棒的提示。

1 个答案:

答案 0 :(得分:1)

您应该观察UIDocumentStateChangedNotification。如果文档的documentState属性设置了UIDocumentStateInConflict标志,则存在冲突。请注意,文档可以同时处于多个状态,因此请勿使用==进行检查,而应使用if (document.state & UIDocumentStateInConflict) {...之类的内容。

然后,您可以使用otherVersionsOfItemAtURL:类法NSFileVersion获取有冲突的版本。

您可以在chapter on resolving document conflicts中的Document-Based App Programming Guide for iOS找到更详细的信息。