iOS RAC学习笔记 从零起步(第一天)
前言
现在很多公司都崇尚RAC开发了,尤其是配合MVVM的架构,使整个项目的逻辑性更加的强,而且维护代码和迭代功能也不是那么头疼了。本人觉得很重要,所以,从今天开始,分享一下RAC的学习方法,一步一步的教大家接受并开始尝试这种机制。这是第一天学习笔记,以理论为主,希望大家能静下心沉淀学习一下,为以后的学习做铺垫。
什么是RAC?
全拼是ReactiveCocoa,是由Github开源的一个应用于iOS和OS开发的新框架,简单的说,就是一个第三方库,可以大大简化你的代码过程。RAC具有函数式编程和响应式编程的特性,并且目前看来安全可靠。
RAC的作用?(个人感觉)
- 响应式编程的特性,代码思路更加清晰,数据处理更加清晰
- 简化代码,降低各个模块的耦合度
- 需要用到通知的地方用起来很方便,而且和项目框架配合很灵活
RAC中用到的常见类
- RACSiganl 信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。通俗地说,就是需要去处理什么事情,就发个信号,告诉对方,可以处理啦。
默认一个信号是冷信号,默认不会被触发,只有订阅了这个信号,这个信号才会成为热信号,值改变的时候,才会被触发。
至于如何订阅信号和创建信号,今天先不说,下篇文章会系统的讲下应用和具体流程。
-
RACSubscriber 订阅者 ,用于发送信号 ,这是一个协议,只有遵守这个协议,并且实现方法才能成为订阅者。通过create创建的信号,都有一个订阅者,帮助他发送数据。
-
RACDisposable 用于取消订阅或者清理资源,当信号发送完成或者发送错误的时候,就会自动触发它。也可以主动取消订阅信号。
-
RACSubjec 信号提供者,通俗地说,本身就是信号源,也是发送信号的人。一般传递数据,或者要去处理事情,直接调用他就好了。
-
RACCommand RAC中用于处理事件的类,可以把事件如何处理,事件中的数据如何传递,包装到这个类中,他可以很方便的监控事件的执行过程。我一般是用做数据请求的类,把数据请求放到这里。
-
RACMulticastConnection用于当一个信号,被多次订阅时,为了保证创建信号时,避免多次调用创建信号中的block,造成副作用,可以使用这个类处理。通俗地说,就是为了避免重复调用,多次请求。
-
RACScheduler RAC中的队列,用GCD封装的,没有深入使用过,后期我会补上这个类的应用场景。
one day结束语
今天给大家讲解的都是理论知识,一定要静下心来记录一下,不懂没有关系,很快我会根据例子讲解下他们的具体应用,相信大家就会有更感官的理解了。学习知识要循序渐进,知其然知其所以然,希望我的小小文字,能帮助你点滴。谢谢支持。