sách gpt4 ai đã đi

objective-c - react 性 NSMutableDictionary?

In lại 作者:行者123 更新时间:2023-12-02 08:38:08 25 4
mua khóa gpt4 Nike

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

1 Câu trả lời

RACObserve Đúng key-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
Bài viết được đề xuất: r - 如何 reshape WDI 数据
Bài viết được đề xuất: django - Django 是否原生支持迁移
Bài viết được đề xuất: php - 为什么多维数组一直返回键值 "0"?
Bài viết được đề xuất: c - 现在 glibc 中包含数学库了吗?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com