ReactiveCocoa解析之RACSiganl

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

RACSiganl

使用的三个步骤:1.创建信号 2.订阅信号 3.发送信号
//1.创建信号
    RACSignal * signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _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),并将传的对象传进去。

Snip20161221_9.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容