RAC学习之二

RACSignal(信号)介绍:

核心思想:创建信号、订阅信号、发送信号

1、创建信号及发送信号

RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        
        //发送信号的方式有三种,都是类方法调用
        //type1:发送一般信号,发送信号类型为id类型
        [subscriber sendNext:@"发送信号"];
        //type2:发送error信号,信号类型必须为error
        [subscriber sendError:[NSError errorWithDomain:@"github.com/SkyHarute" code:2333 userInfo:@{@"errorMessage":@"异常错误"}]];
        //type3:发送complete信号
        [subscriber sendCompleted];
        /* 1.可返回RACDisposable的对象,也可返回nil
        return [RACDisposable disposableWithBlock:^{
            NSLog(@"取消订阅");
        }];
        */
        /*2.也可返回nil
         */
        return nil;
    }];

类方法创建RACSignal对象,其中subscriber为发送信号的载体;方法中Block的返回类型是RACDisposable的对象,这里也可以返回nil。

2、订阅信号

发送信号的方式有三种,对应的订阅信号的方式也有三种。注:要想接收到响应信号,必须实现相应订阅方法。

//订阅一般类型信号
    [signal subscribeNext:^(id  _Nullable x) {
        NSLog(@"类方法%@",x);
    }];
    //订阅错误信号
    [signal subscribeError:^(NSError * _Nullable error) {
        NSLog(@"%@",error);
    }];
    //订阅complete信号
    [signal subscribeCompleted:^{
        NSLog(@"complete");
    }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容