iOS
来源:互联网 发布:电脑软件如何卸载 编辑:程序博客网 时间:2024/06/05 20:32
有这个一个需求,需要异步下载图片,并且要求下载图片设置超时5秒,图片回来后或者倒计时到了5秒,要弹出一个alertView
//开启超时计时器,活动接口发出时开启,倒计时完成后,调用timeOuthandler- (void)startTimeOutRecord { NSDate *timeout = [[NSDate alloc] initWithTimeIntervalSinceNow:5]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ while ([timeout timeIntervalSinceNow] > 0) { if (self.actViewhasPoped) {//每隔1秒查看活动页面是否弹出,如果弹出,直接return,则异步进程自动结束 return; } sleep(1); } if (!self.actViewhasPoped) { [self performSelectorOnMainThread:@selector(timeOuthandler) withObject:nil waitUntilDone:YES]; } });}- (void)timeOuthandler { //显示默认alert}
坑点:
1.如何中途结束异步进程。答案:直接return。就是这么简单!
2.如何在异步进程中修改UI。众所周知,修改UI要在mainThread中进行,异步进程一般都不会在mainThread中,所以用到了下边这个方法:
[self performSelectorOnMainThread:@selector(timeOuthandler) withObject:nil waitUntilDone:YES];
完美解决!
阅读全文
0 0
- iOS
- iOS
- IOS
- iOS
- iOS
- IOS
- ios
- iOS
- iOS
- IOS
- iOS
- ios
- ios ~~~~~
- ios
- IOS
- IOS
- IOS
- ios
- Java多线程工具包java.util.concurrent---DelayQueue
- ffmpeg + SDL2 实现的视频播放器「视音频同步」
- location.href 无法跳转链接
- PHP将图片直接保存到数据库中
- @RequestMapping 用法详解之地址映射(转)
- iOS
- 关于线程的总结--安全,协调,开销分析
- 如果看到这里说明你对 TextView 已经有了一定的了解,至少已经使用过该控件显示文字过。现在来实现一些复杂一点的效果。 1. 实现可点击的超链接 我们在APP开发过程中会遇到这样的需求,例如
- sql 拆分字段分隔符
- Android Profiler in Android Studio 2.4 preview学习
- 大数据处理神器map-reduce实现(仅python和shell版本)
- 微信小程序400错误
- 10.1.数字与静态
- kmp算法的优化