Многие, наверное, уже пробовали работать с CoreData и хотя бы краем уха слышали/краем глаза видели что-то о поддержке undo/redo для контекста объектов. Дело в том, что существуют механизмы, позволяющие при изменении объектов, унаследованных от NSManagedObject и находящихся в контексте NSManagedObjectContex, производить перемещение по т.н. контекстному графу при помощи методов undo и redo. Вершины этого графа создаются путем вызова у контекста метода processPendingChanges, после чего последующие изменения объектов в контексте можно откатить до их состояния на момент создания вершины методом undo. Также можно перемещаться между созданными вершинами, вызывая методы undo (к предыдущей вершине) или redo (к следующей вершине). За обработку и управление изменениями отвечает undoManager – объект класса NSUndoManager, который есть у объекта- контекста. Сдесь небольшое уточнение – есть, если только вы программируете под Mac OS. В iPhone SDK undoManager не инициализируется при инициализации контекста!
[context undoManager] == nil;// == YES !!!!!!!!












