gpt4 book ai didi

ios - iOS:如何在iCloud中合并冲突的UIDocument?

转载 作者:行者123 更新时间:2023-12-01 18:24:16 25 4
gpt4 key购买 nike

我无法理解我的选项是要合并存储在iCloud中的UIDocument的2个或更多冲突版本的选项。在检测到文档冲突之后,我目前使用removeOtherVersionsOfItemAtURL来简单地保留文档数据的最新版本。但是,我想支持合并有冲突的文档。

我发现的唯一资源和教程都涉及Core Data和用于合并的持久性存储,示例中使用了诸如SQLite之类的东西,但我没有使用。就我而言,每个文档都是一个单独的文件。

背景:我的应用程序使用自定义NSObject子类(与属性相关)来存储数据。它们在NSCoding内部进行编码和解码(使用NSKeyedArchiver/NSKeyedUnarchiver + UIDocument)。我已经设置了我的应用程序以与iCloud完全兼容。它可以使文件无处不在,反之亦然,可以编辑和删除它们。

请帮助我了解合并冲突的UIDocument's时可以采取的措施!

最佳答案

您将使用NSFileVersion来获取文件的冲突版本。当您进入冲突状态时,+unresolvedConflictVersionsOfItemAtURL将为您提供NSFileVersion实例的任何版本,这些实例不被视为“当前”版本。然后,您可以使用URLNSFileVersion属性来获取那些冲突版本的内容。

现在,您有多个版本的文档。解决冲突的方式取决于您自己-经历冲突的版本并以对文档结构有意义的任何方式合并更改。如果可以用代码解决它,则可能会从一个冲突版本中获取一些数据,并将其复制到当前版本中,直到当前版本包含最终的合并版本为止。

完成此操作后,保存文档,删除有冲突的版本(removeOtherVersionsOfItemAtURL:error:),然后将当前文件版本标记为已解决。您可能还想使用removeAndReturnError:摆脱旧版本。

有关更多详细信息,请参见Apple's guide for resolving document version conflicts

关于ios - iOS:如何在iCloud中合并冲突的UIDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14885404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com