美文网首页
利用 RACObserve 参数二控制监听范围

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

作者: superYang0033 | 来源:发表于2017-03-03 15:32 被阅读376次

    正常情况下 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"
    

    相关文章

      网友评论

          本文标题:利用 RACObserve 参数二控制监听范围

          本文链接:https://www.haomeiwen.com/subject/dmcrgttx.html