我正在开发一个核心数据应用程序,该应用程序具有相当大的托管对象层次结构,类似于树。
创建基础对象时,它会创建一些子对象,这些子对象又会创建自己的子对象,依此类推。这些子对象中的每一个都可以使用 NSURLConnections 收集信息。
现在,我想通过 managedObjectContext 中的 undoManager 来支持撤消/重做。问题是,如果用户创建了一个基础对象,然后尝试撤消该操作,则不会删除该基础对象。相反,可以移除一个或多个子对象。显然,这种类型的动作是不可预测的和不受欢迎的。
所以我尝试默认禁用撤消注册。我通过disableUndoRegistration:
在 managedObjectContext 中修改任何内容之前调用来做到这一点。然后,在基础操作(例如创建基础对象)之前启用撤消注册,然后再次重新禁用注册。
现在,当我尝试撤消时,出现此错误:
撤消:NSUndoManager 0x1026428b0 处于无效状态,撤消调用嵌套撤消组太多
想法?