Отслеживание изменений в сущности CoreData - PullRequest
2 голосов
/ 28 июля 2011

У меня есть простое приложение для iOS, которое использует CoreData. По определенной причине мне нужно отобразить записи истории в UITableView на основе значений сущностей.

Я объясню лучше, предположив, что у меня есть сущность A с полем значения x, тогда на определенную дату я изменил значение A на xy.

В UITableView я ожидаю увидеть две записи, сгруппированные по дате изменения.

25/07/2011
A=x
28/07/2011 
A=xy

Я все еще думаю о SQL, что явно неверно в отношении CoreData, поэтому первое решение, которое мне приходит в голову, это добавить новую сущность, возможно, с отношением к A. Поэтому мне интересно, каков наилучший подход CoreData для этого, может быть, есть удобный механизм для сохранения и вызова моментального снимка сущности или определенного атрибута в определенный момент времени.

спасибо

1 Ответ

2 голосов
/ 28 июля 2011

Вы можете добиться этого с помощью KVO (Key Value Observing). Каждый подкласс NSManagedObject может переопределить:

- (BOOL)validateValue:(id *)value forKey:(NSString *)key error:(NSError **)error

Вы также можете переопределить их, но не рекомендуется:

- (void)didChangeValueForKey:(NSString *)key или

- (void)willChangeValueForKey:(NSString *)key

методы, которые получают вызов каждый раз, когда значение изменяется для определенного пути к ключу. Я верю, что это решит вашу проблему. Взгляните на Руководство по программированию KVO, чтобы получить более глубокое понимание предмета KVO @ http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...