0

尝试在基于文档的应用程序中恢复文档版本时,出现错误:

kCGErrorFailure:CGSDisplayID:应用程序尝试枚举 [0 到 CGSGetNumberOfDisplays()] 而不是使用 CGSGetDisplayList()。补偿...
kCGErrorFailure:设置断点@CGErrorBreakpoint() 以在记录错误时捕获错误。

并且文件保持不变。此外,当发生这种情况时,我会在开始编辑文档时收到一条消息,告诉我:

无法自动保存文档 [...]。该文件已被另一个应用程序更改。

我认为这两个问题可能是相关的。

我不知道该做什么或“检查”,因为版本无需任何实现即可工作;我实际上很困惑,因为 Apple 说我只需要启用自动保存才能使用版本恢复/恢复。有谁知道可能导致该错误的原因是什么?

谢谢。

4

2 回答 2

0

我遇到了你所有的问题,让我很痛苦。

在浏览版本时,我也收到过关于 kCGErrorFailure... 的错误消息。我只是忽略了它,因为它对我来说似乎无害。TextEdit 似乎也吐出了这条消息。(看起来像苹果的错误)

对于“文档保持不变”,请在此处查看:从 OSX lion 上的版本浏览器恢复不起作用...想法?(简而言之,您更新文档 UI 的代码可能不会为正在恢复的文档调用)(在我看来没有记录)

对于自动保存问题,请在此处查看:http: //www.cocoabuilder.com/archive/cocoa/306217-how-to-implement-autosaving-browsing-versions-reverting-to-last-saved-in-lion.html(在简而言之,使用文件包装器方法代替读取和写入)。(看起来像苹果的错误)

于 2011-08-06T05:25:56.750 回答
0

除了向 autosavesInPlace 返回 YES 外:您的文档至少需要调用 updateChangeCount: 在更改时传递 NSChangeDone,以便它“知道”有要自动保存的更改。

于 2011-08-09T00:07:49.287 回答