iOS中延时执行(睡眠)的几种方法
1. 最直接的方法:
[self performSelector:@selector(deleyMethod) withObject:nil afterDelay:1.0];
此方式要求必须在主线程中执行,否则无效。是一种非阻塞的执行方式,暂时未找到取消执行的方法。
缺点:每次要为延时写一个方法。
2. 用 NSTread
[NSThread sleepForTimeInterval:0.06];
此方式在主线程和子线程中均可执行。是一种阻塞的执行方式,建方放到子线程中,以免卡住界面,没有找到取消执行的方法。
3.用GCD。
double delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ // code to be executed on the main queue after delay });
此方式在可以在参数中选择执行的线程。是一种非阻塞的执行方式,没有找到取消执行的方法。
4.定时器:NSTimer
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
此方式要求必须在主线程中执行,否则无效。是一种非阻塞的执行方式,可以通过NSTimer类的- (void)invalidate;取消执行。
5.使用NSOperationQueue,在应用程序的下一个主循环执行:
<span style="background-color: rgb(255, 255, 255);"><span style="color:#000000;">[[NSOperationQueue mainQueue] addOperationWithBlock:aBlock];</span></span>
这个和调用performSelector: with afterDelay of 0.0f等价
6.可能是不太好的方法,用animation的completion参数
[UIView animateWithDuration:0.0 delay:5.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{} completion:^(BOOL finished) {//do stuff here}];
iOS中延时执行(睡眠)的几种方法相关推荐
- IOS中延时执行的几种方式的比较
本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.perf ...
- oracle的解析計劃,Oracle中获取执行计划的几种方法分析
1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中. 首先,在你要执行的SQL语句前加expla ...
- Android延时执行调用的几种方法
一.开启新线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); ...
- python自带的shell是什么-python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- java indexof 子字符串_Java中字符串中子串的查找共有四种方法(indexof())
Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此 ...
- Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...
Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn 发布于:2012-09-15 ...
- js 改变change方法_Linux 中改变主机名的 4 种方法 | Linux 中国
今天,我们将向你展示使用不同的方法来修改主机名.你可以从中选取最适合你的方法.-- Magesh Maruthamuthu 昨天我们已经在我们的网站中写过如何在 Linux 中修改主机名的文章[1]. ...
- iOS: JS和Native交互的两种方法,iosjsnative交互
iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...
- 【转】Java中字符串中子串的查找共有四种方法(indexof())
原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下: 1.int ...
最新文章
- java tostringutils_StringUtils
- git 删除已经 add 的文件 记录
- spring cloud alibaba_SpringCloudAlibaba与Cloud搭配方案
- 清华大学:2021元宇宙研究报告
- iframe 跨域 cookies操作
- 你了解部署流水线吗?
- DOS批处理中对含有特殊字符的文件名的处理方法
- java基础--接口
- 计算机文化基础(高职高专版 第十一版)第六章 答案
- 基于BERT阅读理解框架的司法要素抽取方法
- 计算机固态硬盘装系统,固态硬盘如何装系统
- linux离线安装apr-util 报错,Linux 编译 apr-util 时报错
- Python下载库pip pygame
- JAVA Oracle插入大量数据优化
- 隐字神文,先来个隐身
- spring事务管理tx:Advice详解
- 矩阵求和c语言通俗易懂
- android 高光动画,记一个头像高光动画的CSS实现
- 【软件质量保障笔记】软件质量保障
- 服务器厂商对VMware vSphere的驱动支持
热门文章
- 基于JSP的班级聚会网站
- 【使用 BERT 的问答系统】第 1 章 : 自然语言处理简介
- android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片
- python 基础 —— sys.path 与 sys.path.append
- CES 2023:华硕轻薄本创新形态+硬核配置引领新创作时代
- KUDU(三)kudu的模式设计
- Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++
- SSD时代,你的固态硬盘选哪款?
- 学术论文投稿第五弹——如何写Discussion
- Centos修改时间为24小时制