У меня быстрый вопрос относительно KVO. Я понимаю, что для NSArray, если требуется наблюдение за дополнениями, вы можете сделать следующее.
NSIndexSet* set = [NSIndexSet indexSetWithIndex:[someIndex integerValue]];
[self willChange:NSKeyValueChangeInsertion valuesAtIndexes:set forKey:@"theArrayName"];
// add the objects at the specified indexes here
[self didChange:NSKeyValueChangeInsertion valuesAtIndexes:set forKey:@"theArrayName"];
После регистрации для наблюдения вы получите словарь изменений с индексами, которые изменились.
Однако я не понимаю, как я могу наблюдать за добавлением новых объектов в NSMutableDictionary. Есть ли способ наблюдать за добавлением / удалением объекта?
Спасибо,
[РЕДАКТИРОВАТЬ] Я нашел решение, которое соответствует моим текущим потребностям. Я надеюсь, что следующее поможет любым будущим разработчикам.
[self willChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];
[Images setObject:someObject forKey:someIndex];
[self didChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];