Grand Central Dispatch

使用GCD組加載多個網(wǎng)絡(luò)請求 全部返回數(shù)據(jù)好調(diào)用 nofify進(jìn)行數(shù)據(jù)的整理:
方法1:
NSArray * urls = @[@"https://blog.csdn.net/li198847/article/details/85222664",@"http://www.itdecent.cn/p/449fd6c8993b",@"https://www.cnblogs.com/wfwenchao/articles/3688231.html"];
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
AFSecurityPolicy * AFSec =[AFSecurityPolicy defaultPolicy];
manager.securityPolicy = AFSec;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
for (int i = 0; i<100; i++) {
dispatch_group_enter(group);
NSLog(@"當(dāng)前線程:%@",[NSThread currentThread]);
[manager GET:urls[0] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            [self.htmlStrArr addObject:responseObject];
            dispatch_group_leave(group);
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            [self.htmlStrArr addObject:error];
            dispatch_group_leave(group);
        }];
    }
    dispatch_group_notify(group, queue, ^{
        NSLog(@"htmlStrArr ==---- %lu",(unsigned long)self.htmlStrArr.count);
    });

方法2:
NSArray * urls = @[@"https://blog.csdn.net/li198847/article/details/85222664",@"http://www.itdecent.cn/p/449fd6c8993b",@"https://www.cnblogs.com/wfwenchao/articles/3688231.html"];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
AFSecurityPolicy * AFSec =[AFSecurityPolicy defaultPolicy];
manager.securityPolicy = AFSec;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
dispatch_async(dispatch_get_global_queue(0, 0), ^{
dispatch_group_t group = dispatch_group_create();
for (int i = 0; i<100; i++) {
dispatch_group_enter(group);
NSLog(@"當(dāng)前線程:%@",[NSThread currentThread]);
[manager GET:urls[0] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            [self.htmlStrArr addObject:responseObject];
            dispatch_group_leave(group);
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            [self.htmlStrArr addObject:error];
            dispatch_group_leave(group);
        }];
    }
    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
        NSLog(@"一共請求個數(shù):%ld",self.htmlStrArr.count);
    });
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容