将“lastModified”记录添加到Core Data托管对象

时间:2013-03-18 00:00:07

标签: ios macos core-data

需要将对象提交给服务器,并且我想通过显示lastModified日期/时间和lastSubmitted日期/时间向用户指示需要提交对象。

(是的,必须手动提交记录。)

我正在侦听NSManagedObjectContextObjectsDidChangeNotification,检查对象的实体是否为RetailLocation,如果是,则设置其lastModified日期/时间(当然,仅当{{1}不是唯一被修改的属性)。由于这似乎高度混淆了撤消管理器,因此我使用lastModified来设置performSelector:SOMESEL withObject:retailLocation afterDelay:0.0属性。

可悲的是,这几乎更糟糕了:这会导致两个操作被添加到撤消堆栈中!

有人可以推荐一种在核心数据管理记录中实现lastModified属性的好方法吗?或者,我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您不希望撤消修改日期,可以在进行更改前在NSUndoManager上调用disableUndoRegistration,在完成后调用enableUndoRegistration

如果你需要一个,你可以通过调用NSManagedObjectContext上的undoManager获得指向NSUndoManager的指针,但是如果你在iOS中工作,你应该已经有一个指针。

此外,请注意Apple建议使用NSManagedObjectContextWillSaveNotification通知,因为可能不一定会保存更改。