实现iOS中发起异步网络请求,需要等待其返回的数据才能执行下一步操作
2016-08-10 10:21
351 查看
项目中需求,需要发起一个异步网络请求,等待请求数据回来后才可以进行之后的操作。
首先,定义一个BOOL类型的requestEndFlag,当网络数据回来的时候将endFlag置为YES,然后将下面的代码粘贴到网络请求的下方即可。如果网络请求一直没回来,你会发现运行的代码会一直在执行卡在下面的代码块中,并且不会卡住UI画面。
首先,定义一个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]; } } } }
相关文章推荐
- 我发送了网络请求,为啥数据没返回就执行了下一步
- iOS 依次执行 异步网络请求的一种实现
- ajax请求为异步操作时,返回的数据不会被并列函数执行
- iOS 信号量解决-网络异步请求的数据同步返回问题
- iOS网络开发:多个异步网络请求结束后再进行某些操作的方法
- IOS-网络(HTTP请求、同步请求、异步请求、JSON解析数据)
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
- Ajax实现异步操作实例_针对JSON格式的请求数据
- iOS 异步请求网络数据,传值问题
- iOS开发:过滤网络请求中,服务器返回空值null数据的处理(过滤null显示问题)
- IOS开发中异步网络请求上实现同步逻辑
- ios网络学习------3 用非代理方法实现异步post请求
- android 网络数据请求步骤 一 异步操作 AsyncTask
- Ajax实现异步操作实例_针对XML格式的请求数据
- iOS 多个异步网络请求全部返回后再执行具体逻辑的方法
- 有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成执行?如果需要a、b、c、d顺序执行,该如何实现?
- iOS开发 ----- 网络请求5 ----- NSURLsession实现上传数据
- iOS网络编程(二) 自定义请求网络类----推荐用于需要请求过程片段数据
- ios网络学习------3 用非代理方法实现异步post请求
- Ajax实现异步操作实例_针对XML格式的请求数据