订阅者:就是一段代码,它等待信号给它发送一些值,然后订阅者就能处理这些值了
宏RAC() 与 RACObserver() 相同,提供想要与即将到来的值绑定的对象和参数,在其内部所做的是创建一个订阅者并更新其属性的值
e.g.
RAC(self, usernameIsValid) = RACOberver(self.viewModel, isUsernameValid);
RAC(self.viewModel, username) = [myTextField rac_textSignal];
在这儿我们用RAC库中的方法,从 UITextField 拉取一个信号,这行代码将viewModel上的可读写属性username 绑定到文本框上的用户输入的任何更新
filter 返回满足条件的值
map 将一个值转化为另一个值输出
take:2 只取第1个next和第2个next(从开始一共取N次的值,不包括completion和Error)
takeUntil: signal一直到、、、时停止
takeUntilBlock 对于每一个next的值,运行block,当block返回YES时停止取值
takeWhileBlock 上面的反向逻辑,对于每一个next的值,运行block,当block返回NO时停止取值
skip:2 从开始跳过第1个和第2个next的值
skipUntilBlock 一直跳,直到block为YES
skipWhileBlock 一直跳,直到block为NO
reudue: (适合combine)是合并规则