美文网首页
ReactiveCocoa学习汇总

ReactiveCocoa学习汇总

作者: FunkyRay | 来源:发表于2018-02-20 09:50 被阅读14次

    本文是根据袁峥大神的文章进行的概括和简述,用于自己学习和使用,详细内容请参考: 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中用于处理事件的类,可以把事件如何处理,事件中的数据如何传递,包装到这个类中,他可以很方便的监控事件的执行过程。

    使用demo链接:

    https://github.com/liuleiai1/ReactiveCocoa_Demo

    相关文章

      网友评论

          本文标题:ReactiveCocoa学习汇总

          本文链接:https://www.haomeiwen.com/subject/lrowtftx.html