美文网首页
GCD常用方法

GCD常用方法

作者: huicuihui | 来源:发表于2018-01-05 11:24 被阅读0次

    1、延迟做某些任务

                            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                                <#code to be executed after a specified delay#>
                            });
    

    2、多个任务同时进行,等任务全部完成之后去进行下一步操作。
    例如:下面的为网络刷新数据, 但是刷新的数据由两部分两个接口组成,都需要刷新,等两个网络请求都完成之后,去刷新UI界面。

    - (void)loadNewData
    {
        dispatch_group_t requestGroup = dispatch_group_create();
        dispatch_group_enter(requestGroup);
        [[LemonModelManager shareLemonModelManager] fetchTopNews:[FuData getTodayDate] fromDate:nil isPull:YES tempData:nil DataArray:^(BOOL isSuccess, NSArray *array, NSString *error) {
            dispatch_group_leave(requestGroup);
        }];
        dispatch_group_enter(requestGroup);
        [self fetchTopNewsWithType:@"1010" netResultBlock:^(BOOL isSuccess, NSArray *array, NSString *error) {
            dispatch_group_leave(requestGroup);
        }];
        dispatch_group_notify(requestGroup, dispatch_get_main_queue(), ^{
            [self.tableView.mj_header endRefreshing];
            [self.tableView reloadData];
        });
    }
    

    相关文章

      网友评论

          本文标题:GCD常用方法

          本文链接:https://www.haomeiwen.com/subject/zwpjnxtx.html