RAC學(xué)習(xí)之二

RACSignal(信號(hào))介紹:

核心思想:創(chuàng)建信號(hào)、訂閱信號(hào)、發(fā)送信號(hào)

1、創(chuàng)建信號(hào)及發(fā)送信號(hào)

RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        
        //發(fā)送信號(hào)的方式有三種,都是類(lèi)方法調(diào)用
        //type1:發(fā)送一般信號(hào),發(fā)送信號(hào)類(lèi)型為id類(lèi)型
        [subscriber sendNext:@"發(fā)送信號(hào)"];
        //type2:發(fā)送error信號(hào),信號(hào)類(lèi)型必須為error
        [subscriber sendError:[NSError errorWithDomain:@"github.com/SkyHarute" code:2333 userInfo:@{@"errorMessage":@"異常錯(cuò)誤"}]];
        //type3:發(fā)送complete信號(hào)
        [subscriber sendCompleted];
        /* 1.可返回RACDisposable的對(duì)象,也可返回nil
        return [RACDisposable disposableWithBlock:^{
            NSLog(@"取消訂閱");
        }];
        */
        /*2.也可返回nil
         */
        return nil;
    }];

類(lèi)方法創(chuàng)建RACSignal對(duì)象,其中subscriber為發(fā)送信號(hào)的載體;方法中Block的返回類(lèi)型是RACDisposable的對(duì)象,這里也可以返回nil。

2、訂閱信號(hào)

發(fā)送信號(hào)的方式有三種,對(duì)應(yīng)的訂閱信號(hào)的方式也有三種。注:要想接收到響應(yīng)信號(hào),必須實(shí)現(xiàn)相應(yīng)訂閱方法。

//訂閱一般類(lèi)型信號(hào)
    [signal subscribeNext:^(id  _Nullable x) {
        NSLog(@"類(lèi)方法%@",x);
    }];
    //訂閱錯(cuò)誤信號(hào)
    [signal subscribeError:^(NSError * _Nullable error) {
        NSLog(@"%@",error);
    }];
    //訂閱complete信號(hào)
    [signal subscribeCompleted:^{
        NSLog(@"complete");
    }];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容