RxDataSource 中数据源是如何和绑定的-4

RxDataSource(3.0.1)版
RxDataSource 中数据源是如何和绑定的--总结
通过前面三篇的分析,基本上可以总结出RxDataSource数据源代理绑定的实现原理
1、RxDataSource会创建一个数据源和代理对象,同时,如果tableview之前人为设置过代理,它会保存起来(其实是保存到了它自己创建的代理对象里面了),用它自己创建的替换掉我们设置的,然后用runtime的关联对象方法将他们和对应的tableview关联起来,获取的时候再根据tableview自身获取,当代理事件触发时,他自己的代理会执行,同时,通知保存起来的我们之前人为设置的代理,这样代理时间发生时,他的方法会响应,而我们自己设置的delegate也会响应,不会冲突。
至于数据源不能像代理那样同时响应两个,因为只能有一个数据源
如果尝试,在使用rxdatasource时人为设置tableview.dataSource = self, 程序会crash

猜你喜欢

转载自my.oschina.net/dahuilang123/blog/1635042