gpt4 book ai didi

iphone - 使用 observeValueForKeyPath 观察 NSMutableSet 的插入和删除

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:50 26 4
gpt4 key购买 nike

我想收到有关 NSMutableSet 中新插入的通知,因此这就是我正在做的事情,但出于某种原因,它没有调用 observeValueForKeyPath 方法

仅供测试:

-(void)observ{
[self addObserver:self forKeyPath:@"connections" options:NSKeyValueChangeInsertion context:NULL];

[connections addObject:@"connectionName"];

}

这永远不会被调用:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{

if( [keyPath isEqualToString:@"connections"] ) {

NSLog(@"added new object");
}
}

NSMutablSet 是 KVC 吗?

最佳答案

NSMutableSet 确实符合 KVO/KVC。但是,为了按照您设置的方式接收通知,您需要为一个集合实现 KVC 访问器方法。可以查资料here .本质上,您必须实现以下方法:

-countOfConnections
-enumeratorOfConnections
-memberOfConnections:
-addConnectionsObject:
-removeConnectionsObject:
-intersectConnections:

您必须使用这些方法来访问和改变您的集合,以便接收 KVO 通知。

最后,在您的-observeValueForKeyPath 方法中,您可以使用change 字典中键kind 的值来确定什么类型发生突变(添加、删除等)。这些值可以在 here 中找到并列在“NSKeyValueChange”下。希望这会有所帮助。

关于iphone - 使用 observeValueForKeyPath 观察 NSMutableSet 的插入和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com