万物皆RX的探究

2019-07-21  本文已影响0人  越来越胖了

为何在RXSwift下所有的对象都可以调用rx去实现?
随意创建一个btn,绑定一个tap事件

  self.button.rx.tap
            .subscribe(onNext: { () in
                print("button被点击了~~~~")
            })
            .disposed(by: disposeBag)

点击rx,跳转到rx的内部实现,我们可以看到如下代码:


1.jpeg

从中我们可以看到,rx属于 ReactiveCompatible 协议的扩展
点击ReactiveCompatible查看其内部实现,如图:


2.jpeg
上图可以看到,为了让ReactiveCompatible这个协议支持泛型,内部创建了一个rx的关联属性
而最后 NSObject 去遵从了这个协议,如下,通过全局搜索 ReactiveCompatible 协议,可以看到:
3.jpeg

so。。。。。万物皆RX

上一篇 下一篇

猜你喜欢

热点阅读