所以我对 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:];
您正在将添加/删除的对象交给它!也许了解这些物体会发生什么会有帮助?