一个对象需要提交到服务器,我想通过显示lastModified
日期/时间和lastSubmitted
日期/时间来向用户表明该对象需要提交。
(是的,必须手动提交记录。)
我目前正在监听 NSManagedObjectContextObjectsDidChangeNotification
,检查对象的实体是否为 RetailLocation
,如果是,则设置其 lastModified
日期/时间(当然,仅当 lastModified
不是唯一被修改的属性时)。由于这似乎高度混淆了撤消管理器,因此我使用 performSelector:SOMESEL withObject:retailLocation afterDelay:0.0
来设置 lastModified
属性。
可悲的是,这几乎更糟:这导致两个操作被添加到撤消堆栈中!
有人可以推荐一种在核心数据管理记录中实现 lastModified
属性的好方法吗?或者,我错过了什么?
最佳答案
如果您不希望修改日期可撤销,您可以在进行更改之前在 NSUndoManager 上调用 disableUndoRegistration
,并在完成后调用 enableUndoRegistration
。
如果你需要一个,你可以通过在你的 NSManagedObjectContext 上调用 undoManager
来获得一个指向 NSUndoManager 的指针,但如果你在 iOS 中工作,你应该已经有了一个。
另外,请注意 Apple 建议为此使用 NSManagedObjectContextWillSaveNotification
通知,因为可能不一定会保存更改。