• 监听多个信号,处理结果


    场景1:界面有多个网络请求,当所有网络请求都完成时,才能展示界面。

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        RACSignal *signalA = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
            // requestA()
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                [NSThread sleepForTimeInterval:3.0];
                [subscriber sendNext:@"网络A加载完成"];
            });
            return [RACDisposable disposableWithBlock:^{
                NSLog(@"取消A信号");
            }];
        }];
        RACSignal *signalB = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
            // requestB()
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                [NSThread sleepForTimeInterval:5.0];
                [subscriber sendNext:@"网络B加载完成"];
            });
            return [RACDisposable disposableWithBlock:^{
                NSLog(@"取消B信号");
            }];
        }];
    
        [self rac_liftSelector:@selector(responseA:B:) withSignalsFromArray:@[signalA, signalB]];
    
    }
    
    - (void)responseA:(id)a B:(id)b {
        NSLog(@"%@, %@", a, b);
    }
  • 相关阅读:
    CodingTrip
    CodingTrip
    Linux下面查找含有特定的字符的文件
    Linux下TCP/IP协议的Socket编程
    显示Apache服务器里面访问量排在前10的ip地址
    c语言的详细编译过程
    WebStorm设置编辑器中的字体大小
    Sublime多行编辑快捷键
    Aptana 中去掉“Missing semicolon”提醒
    公认的媒体类型
  • 原文地址:https://www.cnblogs.com/coolcold/p/7649269.html
Copyright © 2020-2023  润新知