Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在学习撤消,我想要一种方法来查看其中的撤消对象(NSInvocations),undoManager这样我就可以看到发生了什么。我在文档中看不到这样的东西,但也许有人知道一种方法。
NSInvocation
undoManager
谢谢。
您可以使用
class-dump -C NSUndo /System/Library/Frameworks/Foundation.framework/Foundation
了解撤消相关类的内部结构。你会发现NSUndoManager 有两个实例变量,分别名为_undoStack 和_redoStack。它的结构非常明显,因此您可以编写一个打印堆栈的小方法。我发现这对于调试与撤消相关的问题非常方便。
你在使用核心数据吗?Core Data 提供自动撤消/重做支持。否则,NSUndoManager将有一个空堆栈。
NSUndoManager
我想我的问题是,你为什么要查看堆栈?在实践中,确实没有理由必须查看撤消管理器的堆栈。如果您正在寻找有关如何创建撤消操作并将其推送到堆栈上的建议,这里有一个关于如何执行此操作的很好的概述。Apple关于该主题的文档也相当不错。我特别喜欢基于调用的方法。