После небольшого прочтения ...
Методы NSUndoManager:
- (void)disableUndoRegistration
- (void)enableUndoRegistration
будет работать при условии, что метод NSManagedObjectContext
- (void)processPendingChanges
вызывается сразу после.
Например, вы можете добавить следующий метод к управляемому объекту, чтобы установить погоду, или не нужно вносить изменение в свойство в стек отмены:
- (void)setColor:(UIColor *)aColor undo:(BOOL)shouldUndo{
if (shouldUndo)
[self setColor:aColor];
else{
NSManagedObjectContext *moc = self.managedObjectContext;
[moc processPendingChanges]; //Disable undo
[moc.undoManager disableUndoRegistration];
[self setColor:aColor]; //Preform change
[moc processPendingChanges]; //Enable undo
[moc.undoManager enableUndoRegistration];
}
}
Обратите внимание: если у вас есть куча изменений, которые вы не хотите добавлять в стек отмены, это может быть не самый эффективный способ сделать это.