Очевидно, что у этого вопроса уже есть несколько хороших решений, но я хотел выпустить новое, которое лучше всего подошло бы для одного конкретного сценария, с которым я столкнулся.
(In Swift:)
override func willSave() {
if self.changedValues()["modificationDate"] == nil {
self.modificationDate = NSDate()
}
super.willSave()
}
Причина, по которой я нуждался в этом, заключается в том, что у меня есть своеобразное требование необходимости иногда устанавливать дату модификации вручную . (Причина, по которой я иногда устанавливаю метку времени вручную, заключается в том, что я пытаюсь синхронизировать ее с меткой времени на сервере.)
Это решение:
- Предотвращает бесконечный цикл willSave (), поскольку после установки метки времени она будет отображаться в changeValues ()
- Не требует использования наблюдения
- Позволяет установить отметку времени вручную