使用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);
});
});