您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页RAC核心操作方法过滤

RAC核心操作方法过滤

来源:二三娱乐

filter

//filter一般用于文本框
//当文本框内容长度大于5才处理
    [[self.filter.rac_textSignal filter:^BOOL(id value) {
        //value:源信号的内容
        return ([value length] > 5);
    }] subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];

ignore

    //ignore:忽略一些值
    //ignoreValues:忽略所有值
    RACSubject *subject = [RACSubject subject];
    [[subject ignore:@1] subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
    [subject sendNext:@1];

take

//take:取前面几个值
//takeLast:取后面多少个值,必须要发送完成
//takeUntil:只要传入信号发送完成或者发送任意的数据,就不会再接收源信号的内容
RACSubject *subject = [RACSubject subject];
    [[subject take:2] subscribeNext:^(id x) {
        NSLog(@"取前面的信号:%@",x);
    }];
    [subject sendNext:@1];
    [subject sendNext:@2];
    [subject sendNext:@3];
    
    RACSubject *subject2 = [RACSubject subject];
    [[subject2 takeLast:2] subscribeNext:^(id x) {
        NSLog(@"取后面的信号:%@",x);
    }];
    [subject2 sendNext:@1];
    [subject2 sendNext:@2];
    [subject2 sendNext:@3];
    [subject2 sendCompleted];
    
    RACSubject *subject3 = [RACSubject subject];
    RACSubject *signal = [RACSubject subject];
    [[subject3 takeUntil:signal]subscribeNext:^(id x) {
        NSLog(@"第三个信号:%@",x);
    }];
    [subject3 sendNext:@1];
//    [signal sendCompleted];
    [signal sendNext:@1];
    //下面信号不会再接收
    [subject3 sendNext:@2];
    [subject3 sendNext:@3];

distinctUntilChanged

//值发生明显变化时才接收信号
RACSubject *subject = [RACSubject subject];
    [[subject distinctUntilChanged]subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
    //只会接收一次
    [subject sendNext:@1];
    [subject sendNext:@1];
    [subject sendNext:@1];
    [subject sendNext:@1];

skip

//跳过几个信号
  RACSubject *subject = [RACSubject subject];
    [[subject skip:2]subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
    [subject sendNext:@1];
    [subject sendNext:@2];
    [subject sendNext:@3];

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

Copyright © 2019-2025 yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务