gpt4 book ai didi

cocoa - 实现版本的问题

转载 作者:行者123 更新时间:2023-12-03 18:00:10 25 4
gpt4 key购买 nike

我尝试在已经为 Snow Leopard 编写的应用程序中实现版本。它是一个基于文档的应用程序,具有 SQLite 存储。每个文档都保存为 SQLite 数据库文件。

我已经在 NSPersistentDocument 子类中实现了适当的方法:

+ (BOOL)autosavesInPlace {return YES;}
+ (BOOL)preservesVersions {return YES;}

现在我在应用程序中有新的文件菜单,其中包含“保存版本”等。我在应用程序中创建新文档,保存它,进行一些更改,再次保存。当我进入版本浏览器时,我得到:

kCGErrorFailure: CGSDisplayID: App trying to enumerate [0 to CGSGetNumberOfDisplays()] instead of using CGSGetDisplayList().  Compensating...
kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.

在版本浏览器右侧的版本列表中,我看到几个版本,但它们没有显示在窗口堆栈中。看起来窗口是堆叠的,但完全透明。当我单击列表中的任何版本时,我会收到日志:

CoreData: error: (8) attempt to write a readonly database

如果我尝试恢复其中一个版本 - 版本浏览器通常关闭,则不会出现任何窗口并且程序停止响应。

我无法理解这一切意味着什么。是保存版本有问题还是恢复版本有问题?我只是没有想法。将不胜感激任何帮助。

最佳答案

打开版本浏览器时,每个核心数据存储都已存储在磁盘上。您是否查看过用于创建文档和阅读文档的覆盖?您确定他们都没有编辑该文档吗?您可能还想检查 awakeFromNib 方法,看看您是否没有将任何内容写入/保存到新文档中。

离开版本浏览器时可能很难调试问题。为了方便起见,您可以编辑当前方案,选择“选项”选项卡,然后选中“在“浏览所有版本”模式下启用调试”。

关于cocoa - 实现版本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7791473/

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