ReactiveCocoa培训
编程思想,ReactiveCocoa初识,ReactiveCocoa进阶1,ReactiveCocoa进阶2,ReactiveCocoa进阶3
编程思想
001--Ma&&链式编程,002--响应式编程,003--自定义KVO,004--函数式编程,005--RACReplaySubject
ReactiveCocoa初识
001--Block简单使用,002--RACSignal类,003--RACDisposable,004--RACSubject,055--RACSubjec简单使用
ReactiveCocoa进阶1
001--RAC集合,002---RAC应用场景,003--Timer,004--登陆验证码发送的练习
ReactiveCocoa进阶2
001--rac_liftSelector,002--RAC常用的宏,003-RACMulticastConnection,004--RACCommand,005--bind方法简单使用,006--RAC bind内部实现(了解)
ReactiveCocoa进阶3
001--RAC映射,002--RAC组合,003--RAC忽略,004--登陆逻辑,005--RAC&&MVVM
章节1
编程思想
第1节
Ma&&链式编程
移动平均线,Moving Average,简称MA,原本的意思是移动平均,由于我们将其制作成线形,所以一般称之为移动平均线,简称均线。
所谓的链式编程就是可以通过"点"语法,将需要执行的代码块连续的书写下去,使得代码简单易读,书写方便。
第2节
响应式编程
响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
第3节
自定义KVO
KVO 是 Objective-C 对观察者设计模式的一种实现,另外一种是:通知机制(notification)
KVO提供一种机制,指定一个被观察对象(例如A类),当对象某个属性(例如A中的字符串name)发生更改时,对象会获得通知,并作出相应处理
第4节
函数式编程
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
第5节
RACReplaySubject
重复提供信号类,RACSubject的子类。
章节2
ReactiveCocoa初识
第1节
Block简单使用
Block是什么?用一句话来概括就是带有自动变量的匿名函数。
第2节
RACSignal类
RACSignal这个信号量类,他的基类是RACStream,从名字看出,"信号量类"继承自"流类",所以RACSignal支持一些高级
第3节
RACDisposable
RACDisposable是头文件对这个类的描述就是对订阅关系的取消和相关资源的清理
第4节
RACSubject
信号提供者,既能发送信号,又能订阅信号
第5节
RACSubjec简单使用
1.创建信号[RACSubject subject],跟RACSiganl不一样,创建信号时没有block
2.订阅信号 - (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock
3.发送信号 sendNext:(id)value
章节3
ReactiveCocoa进阶
第1节
RAC集合
在RAC中可以使用RACSequence,来进行对数组以及字典的快速便利
1、RAC对字典进行遍历
2、RAC对数组进行遍历
第2节
RAC应用场景
1.代替代理 主要通过RACSubject 和 rac_signalForSelector
2.代替KVO
3.监听事件
4.代替通知
5.监听文本框
6.处理界面有多次请求,需要都请求到数据时,才能展示界面
第3节
Timer
00:46:21
timer就是一个能在从现在开始的后面的某一个时刻或者周期性的执行我们指定的方法的对象。
第4节
登陆验证码发送的练习
视频讲述登陆验证码发送的练习
章节4
ReactiveCocoa进阶2
第1节
rac_liftSelector
当需要请求多个数据,在所有数据请求完成之后才进行更新UI或者类似的事情的时候,可以用rac_liftSelector
第2节
RAC常用的宏
RAC常用宏
RACObserve(TARGET, KEYPATH)
KVO的简化版本 相当于对TARGET中KEYPATH的值设置监听,返回一个RACSignal
RAC(TARGET, ...)
第一个是需要设置属性值的对象,第二个是属性名
RAC宏允许直接把信号的输出应用到对象的属性上
每次信号产生一个next事件,传递过来的值都会应用到该属性上
RACChannelTo(TARGET, ...)
RACChannelTo 用于双向绑定
RACChannelTo(self, strin
第3节
RACMulticastConnection
用于当一个信号,被多次订阅时,为了保证创建信号时,避免多次调用创建信号中的block,造成副作用,可以使用这个类处理。
第4节
RACCommand
RACCommand作为RAC比较重要的一个部分,其作用就是得到信号指令触发动作执行,一般涉及到UI交互操作.
第5节
bind方法简单使用
bind方法
假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字“输出:”
第6节
RAC bind内部实现(了解)
1.源信号调用bind,会重新创建一个绑定信号。
2.当绑定信号被订阅,就会调用绑定信号中的didSubscribe,生成一个bindingBlock。
3.当源信号有内容发出,就会把内容传递到bindingBlock处理,调用bindingBlock(value,stop)
4.调用bindingBlock(value,stop),会返回一个内容处理完成的信号(RACReturnSignal)。
5.订阅RACReturnSignal,就会拿到绑定信号的订阅者,把处理完成的信号内容发送出来。
章节5
ReactiveCocoa进阶3
第1节
RAC映射
映射就是给一个对象(可以是变量、物体、等等)起一个唯一的别名
第2节
RAC组合
RAC中常见的高级用法:concat组合,then,merge等
第3节
RAC忽略
RAC中常见的高级用法:
filter过滤信号,使用它可以获取满足条件的信号.
ignore:忽略完某些值的信号.
distinctUntilChanged: 当上一次的值和当前的值有明显的变化就会发出信号,否则会被忽略掉。
take:从开始一共取N次的信号
switchToLatest:用于signalOfSignals(信号的信号),有时候信号也会发出信号,会在signalOfSignals中,获取signalOfSignals发送的新信号
skip跳过几个信号,不接受
第4节
登陆逻辑
步骤1: View层的数据通过C层给到VM层
步骤2: VM层进行逻辑处理
步骤3: View层显示数据
第5节
RAC&&MVVM
iewController、遗失的网络逻辑(没有属于它的位置)、较差的可测试性等因此也就会有维护性较强、耦合性很低的一种新架构MVVM (MVC 引申出得新的架构)的流行。
ReactiveCocoa 可以说是结合了函数式编程和响应式编程的框架,也可称其为函数响应式编程(FRP)框架,强调一点,RAC虽然大的优点是提供了一个单一的、统一的方法去处理异步的行为,包括delegate方法,blocks回调,target-action机制,notifications和KVO.