2012-05-25 5 views
3

Я хотел бы отменить операцию сохранения в моем NSManagedObjectContext; Я всегда думал, что это то, что NSUndoManager для, но, кажется, как будто погубило по Спаси операции не работает ...NSManagedObjectContext: отменять операцию сохранения?

Пример:

[[NSManagedObjectContext MR_contextForCurrentThread] setUndoManager:[NSUndoManager new]]; 
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager beginUndoGrouping]; 
MyDataObject *mdo = [MyDataObject MR_createInContext:[NSManagedObjectContext MR_contextForCurrentThread]]; 
mdo.name = @"..."; 
[[NSManagedObjectContext MR_contextForCurrentThread] save:nil]; 
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager endUndoGrouping]; 
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager undo]; 

Но встраивание не отменены. .. нет ли способа достичь этого? Как сделка?

ответ

4

Можете ли вы использовать контекст, управляемый дочерним управляемым объектом, для сохранения (который подталкивает его к родительскому объекту, но не касается файла на диске), а затем выполняет откат родителя, если вы хотите его отменить ?

Я думаю, что вызов save - это как совершение всех изменений, внесенных вами с момента последнего сохранения, а rollback - это как отбрасывание их. После того, как вы совершили изменения, они находятся в постоянном хранилище, и нет ничего, чтобы вести журналы транзакций, чтобы поддерживать откат.

Не могли бы вы объяснить немного больше, почему вы хотите save в середине вашей транзакции?

 Смежные вопросы

  • Нет связанных вопросов^_^