Удачи!

у добавить менеджер отмены в приложение для iPhone coredata. Когда пользователь пытается добавить новый объект (нажав на кнопку +), я загружаю новый модальный viewcontroller и запускаю новую группу отмены в viewDidLoad.

Когда пользователь нажимает кнопку «Отмена», я хочу откатить изменения в обратном вызове cancelAction.

Запросы:

Можно ли запустить вложенную группу отмены и сохранить ее в цикле событий и сопоставить все изменения, сделанные в одной группе отмен? Прямо сейчас, когда я вызываю beginUndoGrouping в cancelAction, я получаю пропущенное исключение beginUndoGrouping.Какое значение API groupsByEvent для NSUndoManager? Требуется ли установить значение NO, чтобы сохранить группу отмены в цикле событий?Что нужно сделать в обратном вызове saveAction, чтобы сделать изменения постоянными (кроме вызова save для mangedObjectContext)? Как сказать Undo Manager прекратить отслеживать изменения?

Сообщение об ошибке:

* Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «_endUndoGroupRemovingIfEmpty :: NSUndoManager 0x75415f0 находится в недопустимом состоянии, вызывается endUndoGrouping без начала сопоставления

Образец кода:

// RootViewController.m
- (void) addAction {
   // Load Modal View Controller to add new object

}

// AddViewController.m
- (void) viewDidLoad {
   // Start nested undo group
   [self.managedObjectContext processPendingChanges];
   [self.managedObjectContext.undoManager beginUndoGrouping];

   [self createModel];

}

- (void) cancelAction {
    // Revert all changes
    [self.managedObjectContext processPendingChanges];
    [self.managedObjectContext.undoManager endUndoGrouping];

    [self.managedObjectContext.undoManager undoNestedGroup];

    ...
}

- (void) saveAction {

    // Save changes
}

Ответы на вопрос(1)

Ваш ответ на вопрос