每次我的一个托管对象被修改时,为了方便起见,当我与其他客户端同步时,我希望存储它被修改的日期(在已经在我的数据模型中的属性中)。如何在NSManagedObject每次更改时设置修改日期?
有没有办法做到这一点,没有A)手动重写所有我的setter或B)依靠自己总是每次修改对象时更改修改日期?
每次我的一个托管对象被修改时,为了方便起见,当我与其他客户端同步时,我希望存储它被修改的日期(在已经在我的数据模型中的属性中)。如何在NSManagedObject每次更改时设置修改日期?
有没有办法做到这一点,没有A)手动重写所有我的setter或B)依靠自己总是每次修改对象时更改修改日期?
您可以向通知中心注册以遵守NSManagedObjectContextObjectsDidChange通知。
这会告诉你什么对象发生了变化。你可以检查你的对象是否在其中,并采取相应的行动。
为了完整起见,如果您已经拥有NSManagedObject的子类,则还可以在-willSave
中执行此操作。
唯一需要注意的是,每次保存对象时都会调用saveSave,所以您需要做一些额外的工作来确定它是否被添加/修改/删除。 NSManagedObjectContext通知为你做了这个,并让你NSSets迭代。 – refulgentis
是的,这是我最终做的。谢谢。 – refulgentis