我想为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];
}
}
最佳答案
您必须调用[managedObjectContext processPendingChanges];在每个禁用和启用撤消注册的调用之前,因为Core Data队列发生更改以能够进行优化。
看到
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdUsingMOs.html
关于ios - disableUndoRegistration仍允许撤消操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4857319/