NSMutableDictionary添加和删除KVO

我有一个关于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]];

只是为了确保问题得到解答。 信贷转到@DoubleDunk

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

    [Images setObject:someObject forKey:someIndex];

    [self didChangeValueForKey:@"someDictionary" withSetMutation:NSKeyValueUnionSetMutation usingObjects:[NSSet setWithObject:someObject]];
链接地址: http://www.djcxy.com/p/8303.html

上一篇: NSMutableDictionary addition and removal KVO

下一篇: Passing parameters between Velocity templates