disableUndoRegistration по-прежнему разрешает операции отмены - PullRequest
1 голос
/ 01 февраля 2011

Я хочу отключить регистрацию отмены для операции над NSManagedObject, но она по-прежнему записывает операцию, даже если я явно вызываю disableUndoRegistration.

Есть ли что-то очевидное, что мне не хватает?

Я такжепопытался включить / отключить методы viewWillAppear и viewWillDisappear соответственно.

Вот пример кода ...

#pragma mark -
#pragma mark NotesViewControllerDelegate methods
 - (void)notesViewController:(NotesViewController *)controller didFinishWithSave:(BOOL)save
{
    if (save)
    {
        [undoManager disableUndoRegistration];
        [book setNotes:[controller getDataFromText]];
        [undoManager enableUndoRegistration];
    }
}

1 Ответ

3 голосов
/ 29 августа 2011

Вы должны вызвать [managedObjectContext processPendingChanges];перед каждым из вызовов, которые отключают и включают регистрацию отмены, потому что очереди Core Data изменяются, чтобы иметь возможность выполнять оптимизацию.

см. http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdUsingMOs.html

...