首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式解决NSDocument iCloud版本冲突?

以编程方式解决NSDocument iCloud版本冲突?
EN

Stack Overflow用户
提问于 2014-01-08 11:35:55
回答 3查看 459关注 0票数 3

我有一个Mac“鞋盒”应用程序,它内部使用NSDocument对象,但不向用户公开单个文档的概念。(我依赖NSDocument使通过iCloud进行同步变得更容易。)

我的问题是,当版本冲突出现时,我的应用程序会显示默认的NSDocument冲突解决警报(参见下面),让用户选择一两个赢家。

在我的应用程序的概念中,这是没有意义的。是否有办法拦截/防止该警报并以编程方式处理冲突?

我知道我可以检测到版本与下面的代码相冲突。但是,我仍然需要防止警报表。

代码语言:javascript
复制
[NSFileVersion unresolvedConflictVersionsOfItemAtURL:document.fileURL];

冲突解决示例警报:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-09 17:27:06

这是NSDocument的内置行为,当它发现有未解决的版本冲突时。如果您不想使用它,您将不得不放弃对NSDocument的支持,并使用更低级别的抽象,比如NSFileManager + NSFileVersion。

票数 1
EN

Stack Overflow用户

发布于 2019-07-12 19:14:33

您可以重写+ (BOOL)usesUbiquitousStorage并返回NO。这将不再显示无处不在的冲突面板。

票数 0
EN

Stack Overflow用户

发布于 2021-05-15 20:37:36

见文档解决文档版本冲突

解决文档版本冲突的策略

您的应用程序可以遵循解决文档版本冲突的三种策略之一:

  • 合并来自冲突版本的更改。
  • 根据某些相关因素(例如具有最新修改日期的版本)选择文档版本之一。
  • 使用户能够查看文档的冲突版本,并选择要使用的版本。

最适合使用哪种策略在很大程度上取决于您的文档数据。如果您可以在不引入矛盾元素的情况下合并不同文档版本的内容,那么请遵循该策略。或者选择包含最新修改日期的文档版本,如果您的应用程序没有因此而丢失任何数据。

通常,您应该尝试在不涉及用户的情况下解决冲突,但是对于一些可能不可能的应用程序。如果应用程序采用以用户为中心的方法,则应谨慎地将版本冲突通知用户,并公开启动解决过程的按钮或其他控件。一个例子:让用户选择版本。检查允许用户选择要使用的文档版本的应用程序的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20994533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档