iOS RAC学习笔记 从零起步(第一天)

iOS RAC学习笔记 从零起步(第一天)_第1张图片

前言

现在很多公司都崇尚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结束语

今天给大家讲解的都是理论知识,一定要静下心来记录一下,不懂没有关系,很快我会根据例子讲解下他们的具体应用,相信大家就会有更感官的理解了。学习知识要循序渐进,知其然知其所以然,希望我的小小文字,能帮助你点滴。谢谢支持。

你可能感兴趣的:(iOS RAC学习笔记 从零起步(第一天))