使用 ?时处理 iOS 4 应用程序终止的好方法是NSUndoManager
什么?
我有一个使用 Core Data 的 iPhone (iOS 4) 应用程序。该应用程序允许用户编辑托管对象,并且我NSUndoManager
以一种直接的方式实现撤消使用:在模态显示编辑器视图之前,我NSUndoManager
为托管对象上下文创建一个新的。我还开始撤消分组,以便在用户点击“取消”按钮时可以轻松撤消任何更改。如果用户点击“保存”,我只需删除撤消管理器,更改就会永久生效。到现在为止还挺好。
如果用户在编辑对象的过程中按下主页按钮(或接听电话),应用程序将暂停。它向应用程序委托发送一条applicationDidEnterBackground
消息,我利用这个机会保存托管对象上下文。当然,上下文包含新的编辑,只是等待被NSUndoManager
.
这是问题所在:如果应用程序后来“未暂停”,它NSUndoManager
仍然存在并且一切正常。但是,如果应用程序被操作系统“在睡眠中杀死”,撤消堆栈就会丢失,并且对对象所做的更改现在将成为永久性的。在重新启动时,我想将应用程序恢复到它被暂停之前的完全相同的状态,但这似乎需要我保存和恢复撤消堆栈。不幸的是,我找不到明显的方法来做到这一点。
是否有一种支持撤消的好方法,以便无论应用程序是否终止,它都能始终如一地工作?我希望我遗漏了一些明显的东西。任何帮助或建议将不胜感激。