我使用iCloud在我的应用程序中的设备之间同步用户xml文件,使用UIDocument子类,类似于问题中的代码:http://stackoverflow.com/questions/7795629/icloud-basics-and-code -样品。但我不确定何时以及如何发现冲突。我阅读了sdk doc并搜索了互联网,但似乎没有找到任何有详细信息的信息。似乎我们可以使用一些代码 NSNumber *冲突; [url getResourceValue:& conflicted forKey:NSURLUbiquitousItemHasUnresolvedConflictsKey error:nil];
但在我的应用程序中,似乎总是给“冲突”的真正价值? 我也不确定何时应该检测到冲突,我的猜测是在调用UIDocument子类的contentsForType方法之前。如果有人能给出任何可能很棒的提示。
答案 0 :(得分:1)
您应该观察UIDocumentStateChangedNotification
。如果文档的documentState
属性设置了UIDocumentStateInConflict
标志,则存在冲突。请注意,文档可以同时处于多个状态,因此请勿使用==
进行检查,而应使用if (document.state & UIDocumentStateInConflict) {...
之类的内容。
然后,您可以使用otherVersionsOfItemAtURL:
类法NSFileVersion
获取有冲突的版本。
您可以在chapter on resolving document conflicts中的Document-Based App Programming Guide for iOS找到更详细的信息。