gpt4 book ai didi

objective-c - react 性 NSMutableDictionary?

转载 作者:行者123 更新时间:2023-12-02 08:38:08 25 4
gpt4 key购买 nike

如何使用 ReactiveCocoa 订阅从 NSMutableDictionary 添加和删除的对象?另外,我想在它发生变化时广播通知。我的猜测是可以使用 RACMulticastConnection 完成广播,但我如何将其与字典更改联系起来?我第一次尝试在我的项目中使用 ReactiveCocoa 并坚持我想做的第一件事:(

最佳答案

RACObservekey-value observing 的包装器, 并继承了相同的特性和缺陷。

不幸的是,NSMutableDictionary 不是自动可观察的。有两种方法可以解决这个问题:

  1. Subclass it and add KVO support .
  2. 创建一个真实的模型对象,使用属性而不是字典键。然后,只要您使用 setter 而不是直接修改 ivar,您就会在这些属性上获得 KVO。

我不确定您所说的“[广播] 通知发生变化时”到底是什么意思,或者它为什么有值(value)。通知对我来说太全局化了,我提倡使用更有限的观察(比如 KVO)。

但是,假设您确实想要这样做,发布通知以响应新的信号值就足够简单了:

@weakify(self);
[RACObserve(self, dictionary) subscribeNext:^(NSDictionary *dictionaryValue) {
@strongify(self);
[NSNotificationCenter.defaultCenter postNotificationName:SomeNotificationName object:self];
}];

如果您想要 KVO 的更改字典(其中包括有关添加/删除值的信息),您需要将 RACObserve 替换为 +rac_valuesAndChangesForKeyPath:options:observer: .

关于objective-c - react 性 NSMutableDictionary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211314/

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