对于两个异步任务结束后回调的解决方案

引入ReactiveCocoa,cocoaPods上有ReactiveCocoa这个类。这里pod的安装和install就不多说了。注意的是,如果install一直在等待,那就是被墙了,使用pod install --verbose --no-repo-update这条命令。


    RACSignal *signal1 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            [NSThread sleepForTimeInterval:2];
            NSLog(@"1");
            [subscriber sendNext:@"1"];
            [subscriber sendCompleted];
        });
        return nil;
    }];
    
    RACSignal *signal2 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            [NSThread sleepForTimeInterval:3];
            NSLog(@"2");
            [subscriber sendNext:@"2"];
            [subscriber sendCompleted];
        });
        return nil;
    }];
    
    [[signal1 zipWith:signal2] subscribeNext:^(id x) {
        NSLog(@"3");
    }];

首先创建两个信号。这里推荐在异步任务方法中添加一个block,在block回调中作
            [subscriber sendNext:@"1"];
            [subscriber sendCompleted];
发送next消息,这里可以为nil;注意这两条必须写,不写的话下面的绑定就没有意义。

ZipWith绑定两个任务。回调中执行两个异步任务完成后的动作。对于多个任务的绑定楼主还是研究。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值