@歸虹塵 看文章內(nèi)容中的 getA 這個(gè)方法
iOS GCD之多個(gè)請(qǐng)求順序執(zhí)行一寝志、業(yè)務(wù)場(chǎng)景予跌。 各個(gè)方法都是異步嗜逻,但需要他們順序執(zhí)行夺英。如提交信息C(submitC)之前需要獲取B(getB),而獲取B(getB),則需要先獲取A(getA)狐赡。getA--...
給所有上傳任務(wù)增加信號(hào)量來(lái)判斷是否所有任務(wù)都已完成撞鹉。代碼如下:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)),
dispatch_get_main_queue(), ^{
dispatch_group_t group = dispatch_group_create();
for (NSInteger index = 0; index < imageDataArray.count; index++) {
dispatch_group_enter(group);
[[LDHttpRequest sharedLDHttpRequest] uploadImage:requestUrl imageData:imageDataArray[index] params:nil parameterOfImage:@"file" success:^(id responseObj) {
if ([responseObj objectForKey:@"url"]) {
NSDictionary *dic = @{
@"fileName":[responseObj objectForKey:@"submittedFileName"],
@"filePath":[responseObj objectForKey:@"url"]
};
@synchronized (result) { //同步鎖
result[index] = dic;
}
}
dispatch_group_leave(group);
} fail:^(LocalError *localError, NSError *netError) {
dispatch_group_leave(group);
}];
}
NSMutableArray *fileList = [NSMutableArray array];
//所有任務(wù)都完成
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
for (NSDictionary *dic in result) {
if([dic objectForKey:@"filePath"]){
[fileList addObject:dic];
}
}
weakSelf.fileList = fileList;
[self submitAll:loading];
});
});
iOS GCD之多個(gè)請(qǐng)求順序執(zhí)行一、業(yè)務(wù)場(chǎng)景。 各個(gè)方法都是異步鸟雏,但需要他們順序執(zhí)行享郊。如提交信息C(submitC)之前需要獲取B(getB),而獲取B(getB),則需要先獲取A(getA)孝鹊。getA--...
Hola,我是 yes又活。 今年來(lái)看了 RocketMQ苔咪、Kafka、Dubbo 柳骄、Tomcat 的源碼团赏,之前也有讀者詢問(wèn)過(guò)如何讀源碼,索性就來(lái)分享一下耐薯。 其實(shí)還看了一點(diǎn)點(diǎn) L...
一鸠踪、iOS12(Xcode10) 1.1丙者、升級(jí)Xcode10后項(xiàng)目報(bào)錯(cuò) 不允許多個(gè)info.plist Xcode10是默認(rèn)選中的最新的New Build System(De...
一复斥、業(yè)務(wù)場(chǎng)景。 各個(gè)方法都是異步械媒,但需要他們順序執(zhí)行目锭。如提交信息C(submitC)之前需要獲取B(getB),而獲取B(getB),則需要先獲取A(getA)纷捞。getA--...