Я работаю над основным приложением данных, которое имеет довольно большую иерархию управляемых объектов, похожих на дерево.
Когда создается базовый объект, он создает несколько дочерних объектов, которые, в свою очередь, создают свои собственные дочерние объекты и так далее. Каждый из этих дочерних объектов может собирать информацию, используя NSURLConnections.
Теперь я хотел бы поддержать отмену / повтор с помощью undoManager в managedObjectContext. Проблема в том, что если пользователь создает базовый объект, а затем пытается отменить это действие, базовый объект не удаляется. Вместо этого один или несколько дочерних объектов могут быть удалены. Очевидно, что этот тип действий непредсказуем и нежелателен.
Поэтому я попытался отключить регистрацию отмены по умолчанию. Я сделал это, вызвав disableUndoRegistration:
до того, как что-либо изменилось в managedObjectContext. Затем, включение регистрации отмены перед базовыми операциями, такими как создание базового объекта, повторное отключение регистрации после слов.
Теперь, когда я пытаюсь отменить, я получаю эту ошибку:
отмена: NSUndoManager 0x1026428b0 находится в
недопустимое состояние, отмена была вызвана с
слишком много вложенных групп отмены
Мысли