美文网首页
RAC之RACSignal简单学习

RAC之RACSignal简单学习

作者: 带有bug的文艺青年 | 来源:发表于2018-08-14 16:02 被阅读4次

       ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的一个框架。ReactiveCocoa函数式编程,同时为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中高聚合,低耦合的思想。

RACSignal 信号,信号类,是RAC整个函数式相应编程的核心类;

/*

 .核心:

 .核心:信号类

 .信号类的作用:只要有数据改变就会把数据包装成信号传递出去

 .只要有数据改变就会有信号发出

 .数据发出,并不是信号类发出,信号类不能发送数据

 .使用方法:

 .1创建信号

 .2订阅信号

 .实现思路:

 .当一个信号被订阅,创建订阅者,并把nextBlock保存到订阅者里面。

 .创建的时候会返回 [RACDynamicSignal createSignal:didSubscribe];

 .调用RACDynamicSignal的didSubscribe

 .发送信号[subscriber sendNext:value];

 .拿到订阅者的nextBlock调用 */

具体使用如下:

  // 1,创建信号

    self.single = [RACSignal createSignal:^RACDisposable * _Nullable(id  _Nonnull subscriber) {

        //3,发送信号

        [subscribersendNext:@"发送信号***数据***"];

        // 4.取消信号,如果信号想要被取消,就必须返回一个RACDisposable

        // 信号什么时候被取消:1.自动取消,当一个信号的订阅者被销毁的时候机会自动取消订阅,2.手动取消,

        //block什么时候调用:一旦一个信号被取消订阅就会调用

        //block作用:当信号被取消时用于清空一些资源

        return [RACDisposable disposableWithBlock:^{

            NSLog(@"取消订阅");

        }];

    }];

    //2,订阅信号

    //subscribeNext

    // 把nextBlock保存到订阅者里面

    // 只要订阅信号就会返回一个取消订阅信号的类

    @weakify(self);

    RACDisposable*disposable = [self.single subscribeNext:^(id  _Nullable x) {

        @strongify(self);

        self.contentL.text= x;

        NSLog(@"订阅数据**接收到的数据:%@",x);

    }];

    [disposabledispose];

相关文章

  • RAC之RACSignal简单学习

    ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的一个框架。Re...

  • RAC之RACSignal,RACSubject, RACSeq

    学习RAC先从熟悉简单类的使用开始,RACSignal信号类,使用方法:(1)createSignal创建信号类(...

  • ReactiveObjC (一)

    RAC 看似使用简单,代码紧凑,但不太容易精通,这里做一个简单汇总。 RAC 框架中的主要类 RACSignal ...

  • RACSignal介绍

    RACSignal 在RAC中最核心的类RACSignal,搞定这个类就能用ReactiveCocoa了。 RAC...

  • RAC源码解析

    RAC是一个函数响应编程框架。 先来一个简单的RAC使用: RACSignal使用步骤:1.创建信号 + (RAC...

  • (一)、iOS RAC - RACSignal

    (一)、iOS RAC - RACSignal (二)、iOS RAC - RACDisposable(三...

  • RAC的学习

    创建一个信号 (最简单RACSignal信号) 信号的聚合 RAC (宏) KVC (属性监听)

  • RAC的基本使用

    RAC的基本使用 在RAC中,一切都是信号! RACSignal RACSignal实例化一个信号,首先,需要创建...

  • RAC 组合combine

    RAC(_btn,enabled) = [RACSignal combineLatest:@[_accountTe...

  • iOS:RAC之RacSignal

    理解 RAC框架很强大,之前使用的mvc都是通过赋值然后实现页面的刷新,mvc架构对controller层比较重,...

网友评论

      本文标题:RAC之RACSignal简单学习

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