2009-11-09 3 views
4

Каждый раз, когда один из моих управляемых объектов изменяется, я хочу сохранить дату, когда он был изменен (в атрибуте, который уже находится в моей модели данных), для удобства, когда я синхронизируюсь с другими клиентами.Как установить дату изменения каждый раз, когда NSManagedObject изменяется?

Есть ли способ сделать это без A) переписывать все мои сеттеры вручную или B) полагаться на себя, чтобы всегда менять дату изменения каждый раз, когда объект изменяется?

ответ

2

Вы можете зарегистрироваться в нашем уведомлении, чтобы получить уведомление NSManagedObjectContextObjectsDidChange.

Это скажет вам, какие объекты изменены. Вы можете проверить, находится ли ваш объект среди них и принять соответствующие меры.

+0

Да, это то, что я закончил делать. Спасибо. – refulgentis

0

Для полноты, вы также можете сделать это в -willSave, если у вас уже есть подкласс NSManagedObject.

+0

только оговорка, что будет существовать .Save вызывается каждый раз, когда объект сохраняется, поэтому вам нужно сделать небольшую дополнительную работу, чтобы выяснить, добавлена ​​ли она/изменена/удалена. Уведомления NSManagedObjectContext делают это за вас и дают вам NSSets для перебора. – refulgentis

Смежные вопросы