zoukankan      html  css  js  c++  java
  • 监听多个信号,处理结果

    场景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);
    }
  • 相关阅读:
    bzoj1854 [Scoi2010]游戏
    bzoj2456 mode
    bzoj4810 [Ynoi2017]由乃的玉米田
    bzoj1076 [SCOI2008]奖励关
    bzoj3064 Tyvj 1518 CPU监控
    bzoj1798 [Ahoi2009]维护序列
    bzoj3575 [Hnoi2014]道路堵塞
    bzoj3992 [SDOI2015]序列统计
    uoj#34. 多项式乘法
    高等代数典型问题集
  • 原文地址:https://www.cnblogs.com/coolcold/p/7649269.html
Copyright © 2011-2022 走看看