[关闭]
@veightz 2014-09-14T15:17:54.000000Z 字数 786 阅读 1881

ReactiveCocoa 学习笔记 0x00

ReactiveCocoa


学习资料参考:

http://limboy.me/ios/2013/06/19/frp-reactivecocoa.html

这两天开始学习RAC, 拜读了limboy的博客, 写了一些个人的理解, 不知有没有认识上的错误. 如有错误, 希望能多多指点.

信号合并处理

  1. RAC(self.submitButton.enabled) =
  2. [RACSignal combineLatest:@[self.usernameField.rac_textSignal, // 源信号一: 用户名字段内容
  3. self.passwordField.rac_textSignal] // 源信号二: 密码框字段内容
  4. reduce:^id(NSString *userName, NSString *password) {
  5. // 源信号合并后,返回的信号值
  6. return @(userName.length >= 6 && password.length >= 6);
  7. }];

个人理解:
RAC实际上是个宏, RAC(self.submitButton.enabled)相当于声明 self.submitButton.enabled 作为一个信号订阅者,接收来自某个信道的信号值. [RACSignal combineLatest: reduce:]能返回一个具体的信道,且从这个构造方法的名字中可以猜到, 它也是一个通过接收了其他某些信道的信号值, 通过合并处理,产生新信号值的信道.在上面的示例中, combineLatest:选择合并两个文本输入框的文本内容信道, reduce:则实现了返回信号的计算算法, 即怎么处理接收来的信号. 生成了信道最终赋值给RAC(self.submitButton.enabled),相当于信道接入给信号订阅者.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注