利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter

请读者在熟悉ReactiveCocoa2.5的基础上 继续阅读本文。

利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter_第1张图片

图片来源: www.jianshu.com/p/d7d951a99db8

实现原理

1. 利用RACBehaviorSubject每次被sub的时候都会把保存的最新值发送给订阅者。

2. RACBehaviorSubject继承于RACSubject,所以当它被sub时都会调用RACSubject 的subscribe方法,在RACSubject 的subscribe方法中,核心代码就是用一个数组把所有订阅者保存起来,在pub的时候遍历该数组,给所有的订阅者发消息。这样就实现了NSNotificationCenter的功能。

3. Talk is cheap, show me the code! (哈哈。。。)


RACBehaviorSubject源码分析

利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter_第2张图片


RACSubject源码分析

利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter_第3张图片

自定义类RACEventHandler

RACEventHandler.h

利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter_第4张图片


RACEventHandler.m

利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter_第5张图片

你可能感兴趣的:(利用RACBehaviorSubject实现pub/sub机制,替代NSNotificationCenter)