您的位置:首页 > 理论基础 > 计算机网络

实现iOS中发起异步网络请求,需要等待其返回的数据才能执行下一步操作

2016-08-10 10:21 351 查看
项目中需求,需要发起一个异步网络请求,等待请求数据回来后才可以进行之后的操作。
首先,定义一个BOOL类型的requestEndFlag,当网络数据回来的时候将endFlag置为YES,然后将下面的代码粘贴到网络请求的下方即可。如果网络请求一直没回来,你会发现运行的代码会一直在执行卡在下面的代码块中,并且不会卡住UI画面。
- (void)waitingRequestEnd
{
if ([NSThread currentThread] == [NSThread mainThread]) {
while (!requestEndFlag) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.3]];
}
} else {
@autoreleasepool {
while (requestEndFlag) {
[NSThread sleepForTimeInterval:0.3];
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: