序
本文是根据袁峥大神的文章进行的概括和简述,用于自己学习和使用,详细内容请参考: https://www.jianshu.com/p/87ef6720a096
ReactiveCocoa简介
ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。
编程思想
-
面向过程:处理事情以过程为核心,一步一步的实现。
-
面向对象:万物皆对象,不用考虑过程怎么处理,直接获取结果。
-
链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)
-
响应式编程思想:不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。
-
函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。
-
详见代码链接:https://github.com/liuleiai1/Programming-thought-practice
ReactiveCocoa的编程思想
ReactiveCocoa结合了几种编程风格:
函数式编程(Functional Programming)
响应式编程(Reactive Programming)
所以,你可能听说过ReactiveCocoa被描述为函数响应式编程(FRP)框架。
ReactiveCocoa的常用类
-
RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。
-
RACSubscriber:表示订阅者的意思,用于发送信号,这是一个协议,不是一个类,只要遵守这个协议,并且实现方法才能成为订阅者。通过create创建的信号,都有一个订阅者,帮助他发送数据。
-
RACDisposable:用于取消订阅或者清理资源,当信号发送完成或者发送错误的时候,就会自动触发它。
-
RACSubject:信号提供者,自己可以充当信号,又能发送信号。
-
RACReplaySubject:重复提供信号类,RACSubject的子类。
RACReplaySubject可以先发送信号,在订阅信号,RACSubject就不可以。 -
RACTuple:元组类,类似NSArray,用来包装值。
-
RACSequence:RAC中的集合类,用于代替NSArray,NSDictionary,可以使用它来快速遍历数组和字典。
-
RACMulticastConnection:用于当一个信号,被多次订阅时,为了保证创建信号时,避免多次调用创建信号中的block,造成副作用,可以使用这个类处理。
-
RACCommand:RAC中用于处理事件的类,可以把事件如何处理,事件中的数据如何传递,包装到这个类中,他可以很方便的监控事件的执行过程。
网友评论