Estoy trabajando en una aplicación de datos central que tiene una gran jerarquía de objetos administrados similar a un árbol.NSUndoManager, Core Data y selectivo deshacer/rehacer
Cuando se crea un objeto base, crea unos pocos objetos secundarios que a su vez crean sus propios objetos secundarios y así sucesivamente. Cada uno de estos objetos secundarios puede recopilar información usando NSURLConnections.
Ahora, me gustaría apoyar deshacer/rehacer con el DeshacerManager en managedObjectContext. El problema es que si un usuario crea un objeto base y luego intenta deshacer esa acción, el objeto base no se elimina. En cambio, uno o más de los objetos secundarios pueden ser eliminados. Obviamente, este tipo de acción es impredecible y no deseada.
Intenté deshabilitar el registro de deshacer de manera predeterminada. Hice esto llamando al disableUndoRegistration:
antes de que cualquier cosa se modifique en managedObjectContext. Luego, permite deshacer el registro antes de las operaciones básicas, como crear un objeto base, volver a deshabilitar los registros posteriores.
Ahora cuando intento de deshacer, me sale este error:
undo: NSUndoManager 0x1026428b0 is in invalid state, undo was called with too many nested undo groups
Pensamientos?
¡esto funcionó para mí! –