我在CoreData
上使用OSX
(但我认为iOS
的问题是相同的。)
我想禁用用于创建/删除NSManagedObjects
的撤消管理。但是,如果可能的话,我会继续对我的实体的属性(如NSStrings
等)进行撤消管理。
我该怎么做?
如果可能,我想要一个全局解决方案,例如MyManagedObject
的子类NSManagedObject
,并覆盖方法(awakeFromInsert
,prepareForDeletion
)。
答案 0 :(得分:4)
NSUndoManager
有disableUndoRegistration
和enableUndoRegistration
方法允许此操作。您需要拦截您不希望撤消的操作,并根据需要禁用/启用撤消管理器。请注意,启用和禁用的调用必须平衡(不要在不调用(或已调用)另一个的情况下调用一个。还有责任确保撤消任何操作都不会导致无效状态(这是beginUndoGrouping
)的目的。
答案 1 :(得分:1)
您可以将关联号NSUndoManager
确定为NSManagedObjectContext
:
[self.managedObjectContext setUndoManager:nil] ;