KVO и основные данные, получение только измененных значений через Observation

Итак, я новичок в Core Data и KVO, но у меня есть подкласс NSManagedObject, который успешно отслеживает свои отношения ко многим. Проблема в том, что при наблюдаемых изменениях я хочу перебирать только набор объектов, которые были добавлены или удалены. Есть ли способ получить доступ к этим элементам напрямую? Или я должен сделать что-то относительно неэффективное, например:

NSSet* newSet = (NSSet*)[change objectForKey:NSKeyValueChangeNewKey];
NSSet* oldSet = (NSSet*)[change objectForKey:NSKeyValueChangeOldKey];

NSMutableSet* changedValues = [[NSMutableSet alloc] initWithSet:newSet];
[changedValues minusSet:oldSet];

Я чувствую, что вы сможете этого избежать, потому что в этих сообщениях ...

[self willChangeValueForKey:forSetMutation:usingObjects:];
[self  didChangeValueForKey:forSetMutation:usingObjects:];

вы передаете ему добавленные / удаленные объекты! Может быть, будет полезно знать, что происходит с этими объектами?

6
задан Philip 5 July 2011 в 18:37
поделиться