我有一个Mac“鞋盒”应用程序,它内部使用NSDocument对象,但不向用户公开单个文档的概念。(我依赖NSDocument使通过iCloud进行同步变得更容易。)
我的问题是,当版本冲突出现时,我的应用程序会显示默认的NSDocument冲突解决警报(参见下面),让用户选择一两个赢家。
在我的应用程序的概念中,这是没有意义的。是否有办法拦截/防止该警报并以编程方式处理冲突?
我知道我可以检测到版本与下面的代码相冲突。但是,我仍然需要防止警报表。
[NSFileVersion unresolvedConflictVersionsOfItemAtURL:document.fileURL];冲突解决示例警报:

发布于 2014-01-09 17:27:06
这是NSDocument的内置行为,当它发现有未解决的版本冲突时。如果您不想使用它,您将不得不放弃对NSDocument的支持,并使用更低级别的抽象,比如NSFileManager + NSFileVersion。
发布于 2019-07-12 19:14:33
您可以重写+ (BOOL)usesUbiquitousStorage并返回NO。这将不再显示无处不在的冲突面板。
发布于 2021-05-15 20:37:36
见文档解决文档版本冲突
解决文档版本冲突的策略
您的应用程序可以遵循解决文档版本冲突的三种策略之一:
最适合使用哪种策略在很大程度上取决于您的文档数据。如果您可以在不引入矛盾元素的情况下合并不同文档版本的内容,那么请遵循该策略。或者选择包含最新修改日期的文档版本,如果您的应用程序没有因此而丢失任何数据。
通常,您应该尝试在不涉及用户的情况下解决冲突,但是对于一些可能不可能的应用程序。如果应用程序采用以用户为中心的方法,则应谨慎地将版本冲突通知用户,并公开启动解决过程的按钮或其他控件。一个例子:让用户选择版本。检查允许用户选择要使用的文档版本的应用程序的代码。
https://stackoverflow.com/questions/20994533
复制相似问题