ReactiveCocoa解析之RACSiganl

给大家介绍一个在ReactiveCocoa中经常使用的类,以及使用方法。

RACSiganl

使用的三个步骤:1.创建信号 2.订阅信号 3.发送信号
//1.创建信号
    RACSignal * signal = [RACSignal createSignal:^RACDisposable * _Nullable(id  _Nonnull subscriber) {
        //3.发送信号
        [subscriber sendNext:@"我是要传递的参数"];
        
        return nil;
    }];
    
    //2.订阅信号
    [signal subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];

源码解析:

1.创建信号:createSignal:做的操作是返回带有block(didSubscribe)的信号对象,类型为RACDynamicSignal。

2.订阅信号:subscribeNext:保存block(nextBlock),并执行block(didSubscribe),同时将block(nextBlock)传入block(didSubscribe)。

3.发送信号:block(didSubscribe)中调用sendNext:作用是执行block(nextBlock),并将传的对象传进去。

ReactiveCocoa解析之RACSiganl_第1张图片
Snip20161221_9.png

你可能感兴趣的:(ReactiveCocoa解析之RACSiganl)