初始RAC,简单的一些代码编写

从pod拉取下代码以后,导入头文件

#import "ReactiveObjC/ReactiveObjC.h"

#import "SVProgressHUD/SVProgressHUD.h"

//#import "ReactiveObjC/RACSignal.h"

//#import "ReactiveObjC/RACDisposable.h"

//#import "ReactiveObjC/RACSubscriber.h"

这里看你的需要导入对应的头文件,一般来说导入第一个头文件,默认的都可以使用了

 

下面是一些简单的使用(现在只是单纯一些信号的使用)

 RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {

        NSLog(@"发送信号");

        [subscriber sendNext:@(2)];// 发送信号

        [subscriber sendError:nil];  //信号出错

        [subscriber sendCompleted]; // 信号发送完成

        return [RACDisposable disposableWithBlock:^{

            NSLog(@"信号销毁");

        }];// 这个方法监听信号是否销毁,最后会执行

    }];

  [signal subscribeNext:^(id  _Nullable x) {

        NSLog(@"接收到信号");

    }];// 发送信号以后,这里会执行

   

    RACSubject *subject = [RACSubject subject];

    [subject sendNext:@(520)];

    [subject subscribeNext:^(id  _Nullable x) {

        NSLog(@"第一个订阅者");

        NSLog(@"%@",x);

    }];//这是订阅者 520

   [subject subscribeNext:^(id  _Nullable x) {

        NSLog(@"第二个订阅者%@",x);

    }]; 520

 

  

    RACReplaySubject *replaySubject = [RACReplaySubject subject];//这个会重复的订阅信号

    [replaySubject sendNext:@(520)];

    [replaySubject sendNext:@(1314)];

    [replaySubject subscribeNext:^(id  _Nullable x) {

        NSLog(@"第一个,%@",x);//二次输出 一次520,一次1314

    }];

    [replaySubject subscribeNext:^(id  _Nullable x) {

        NSLog(@"第二个,%@",x);//二次输出 一次520,一次1314

    }];

      

 

posted @ 2017-09-20 15:00  高尚的人  阅读(113)  评论(0)    收藏  举报