ReactiveCocoa响应式编程

26 阅读1分钟

信号的传递本身是一个抽象概念,订阅者和被订阅者之间的绑定、以及信号的发送,都是通过执行共同的block(_didSubscribe和_next) 来完成的

信号创建,订阅,发送,取消其实都是block的传导,这篇文章说的比较详细

blog.csdn.net/lizitao/art…

其中还说到了冷热信号的区别

RACSubject相关的操作会产生热信号

1)冷信号是一对一的,订阅者与被订阅者通过block绑定,没有订阅者,就没有被订阅者,有了订阅者代码执行,

被订阅者代码就会被完整地执行,所以冷信号给我们带来的是完整信号。

2)热信号的概念类似于Notification的概念,它不管某一个订阅者代码是否被执行,它都会去遍历订阅者数组,依次

执行被订阅者代码,如果你先到,你就可以“先拿到”较早的信号,如果你晚加入订阅者数组,你就只能被晚点遍历到,

接收到较晚的信号。

这里是一些RACSignal信号的常用处理方式介绍

leon0206.blog.csdn.net/article/det…

//高阶信号操作

juejin.cn/post/684490…

www.jianshu.com/p/bae2eeba1…

www.jianshu.com/p/899e82f8f…

www.jianshu.com/p/e10e5ca41…

美团:为什么RACSubject在做Map操作以后,需要完成事件才不会造成内存泄漏?

tech.meituan.com/2016/08/19/…

RAC的一些高级用法:

juejin.cn/post/684490…