创建基础对象时,它会创建一些子对象,这些子对象又创建自己的子对象,依此类推.这些子对象中的每一个都可以使用NSURLConnections收集信息.
现在,我想在managedobjectContext中使用undoManager支持undo / redo.问题是,如果用户创建基础对象,然后尝试撤消该 *** 作,则不会删除基础对象.相反,可以移除一个或多个子对象.显然,这种行为是不可预测的,也是不受欢迎的.
所以我尝试默认禁用撤销注册.我通过调用disableundoRegistration执行此 *** 作:在managedobjectContext中修改任何内容之前.然后,在基本 *** 作(例如创建基础对象)之前启用撤销注册,再次重新禁用注册后的注册.
现在,当我尝试撤消时,我收到此错误:
undo: NSUndoManager 0x1026428b0 is in
invalID state,undo was called with
too many nested undo groups
思考?
解决方法 NSUndoManager等待下一个运行循环周期,直到它注册您的更改// do your stuff// give the run loop a breath[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:[NSDate date]];[undoManager disableundoRegistration];总结
以上是内存溢出为你收集整理的可可 – NSUndoManager,核心数据和选择性撤消/重做全部内容,希望文章能够帮你解决可可 – NSUndoManager,核心数据和选择性撤消/重做所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)