NSMutableDictionary добавление и удаление KVO - PullRequest
7 голосов
/ 05 июля 2011

У меня быстрый вопрос по поводу КВО.Я понимаю, что для 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.Есть ли способ наблюдать за добавлением / удалением объектов?

Спасибо,

[EDIT] Я нашел решение, которое соответствует моим текущим потребностям.Я надеюсь, что следующее поможет любым будущим разработчикам.

[self willChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];

[Images setObject:someObject forKey:someIndex];

[self didChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];

1 Ответ

3 голосов
/ 25 января 2012

Просто чтобы убедиться, что ответ на этот вопрос. кредит переходит на @ DoubleDunk

[self willChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];

    [Images setObject:someObject forKey:someIndex];

    [self didChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];
...