Я работаю над основным приложением данных, которое имеет довольно большую иерархию управляемых объектов, похожих на дерево.NSUndoManager, Основные данные и выборочное отмена/повторение
Когда создается базовый объект, он создает несколько дочерних объектов, которые, в свою очередь, создают свои собственные дочерние объекты и т. Д. Каждый из этих дочерних объектов может собирать информацию, используя NSURLConnections.
Теперь я хотел бы поддержать отмену/повтор с помощью undoManager в управляемом объектеContext. Проблема в том, что если пользователь создает базовый объект, то пытается отменить это действие, базовый объект не будет удален. Вместо этого один или несколько дочерних объектов могут быть удалены. Очевидно, что этот тип действий непредсказуем и нежелателен.
Так что я попытался отключить отмену регистрации по умолчанию. Я сделал это, позвонив disableUndoRegistration:
, прежде чем что-либо будет изменено в файле managedObjectContext. Затем, позволяя отменить регистрацию перед базовыми операциями, такими как создание базового объекта, снова повторно отключить регистрацию послесловий.
Теперь, когда я пытаюсь отменить, я получаю эту ошибку:
undo: NSUndoManager 0x1026428b0 is in invalid state, undo was called with too many nested undo groups
Мысли?
это сработало для меня! –