利用 RACObserve 参数二控制监听范围

正常情况下 RACObserve 键值监听为,参数一:监听属性的父节点、 参数二:准备监听的属性

RAC(self.titleLabel, text) = RACObserve(self.viewModel, name);
self.viewModel.name = @"super";

然而在嵌套式的结构中,可能父节点变化而引起当前属性变化,此时参数配置就需要注意了,比如当 viewModel 被赋值并且 viewModel 的属性 name 也发生变化, 需要对父节点和属性同时尽心监听。

  • 错误写法
RAC(self.titleLabel, text) = RACObserve(self.viewModel, name);
SYViewModel *viewModel = [[SYViewModel alloc] init];
self.viewModel = viewModel;
viewModel.name = @"super super";
// self.titleLabel.text 不会发生变化
  • 正确写法
RAC(self.titleLabel, text) = RACObserve(self, viewModel. name); // 需要对 name 父节点同时监听
SYViewModel *viewModel = [[SYViewModel alloc] init];
self.viewModel = viewModel;
viewModel.name = @"super super"; // 正常改变为 "super super"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、概述 笔者 强烈推荐 大家在阅读本文之前,还请先移步阅读👉 iOS 关于MVC和MVVM设计模式的那些事 和...
    CoderMikeHe阅读 15,806评论 28 147
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 5,235评论 0 1
  • ReactiveSwift(简称RAS),好处: ①.简化响应式函数的模式 在Swift中,我们有几种响应式...
    Harely阅读 5,314评论 0 0
  • 那天我寻着璃姐的踪影离开了落木山,我生活了二十年的地方。来到了全华夏最繁华的城市,名字叫皇城。对,这里是住着当今天...
    Blue的猫阅读 4,200评论 0 5
  • 消费:公交2.4元,吃饭2元,购物26(散称豆干、豆浆粉)。 投资:0元。 投机:0元。
    一条道阅读 1,418评论 0 0

友情链接更多精彩内容