关闭

IOS中延时执行的几种方式的比较和汇总

224人阅读 评论(0) 收藏 举报
分类:

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。

- (void)delayMethod { NSLog(@"execute"); }

1.performSelector方法

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。

2.定时器:NSTimer

[NSTimer scheduledTimerWithTimeIn<wbr>terval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];</wbr>

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。

3. sleep方式

[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];

此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
没有找到取消执行的方法。

4.GCD方式

double delayInSeconds = 1.0; <wbr></wbr>
 <wbr>__block ViewController* bself = self; <wbr></wbr></wbr>
 <wbr>dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));</wbr>
<span style="word-wrap: normal; word-break: normal;">dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ <wbr></wbr></span>
 <wbr>[bself delayMethod]; });</wbr>

此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。

0
0
查看评论

IOS延时执行的几种方式比较

IOS中延时执行的几种方式的比较和汇总
  • CatStarXcode
  • CatStarXcode
  • 2017-04-01 18:21
  • 160

iOS中延时执行的几种方式的比较和…

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:@selecto...
  • u013302606
  • u013302606
  • 2016-04-14 10:37
  • 114

IOS中延时执行的几种方式的比较

转载自:http://blog.sina.com.cn/s/blog_8280f5ec0101k03c.html 本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute");...
  • sd19871122
  • sd19871122
  • 2016-04-10 14:09
  • 165

iOS中延时执行的几种方式

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:...
  • LANGZI7758521
  • LANGZI7758521
  • 2016-09-07 11:26
  • 515

iOS积累 003:iOS中延时执行的几种方式的比较和汇总

转载自:http://blog.sina.com.cn/s/blog_8280f5ec0101k03c.html 本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute")...
  • emmaalways
  • emmaalways
  • 2015-07-02 10:27
  • 345

IOS中延时执行的几种方式的比较和汇总

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:@selector...
  • wide288
  • wide288
  • 2013-11-20 22:29
  • 4691

笔记118--Android延时执行的四种方法

转自:http://jingyan.baidu.com/article/636f38bb091ebbd6b8461029.html 一、开启新线程 new Thread(new Runnable(){ public void run(){ Thread.s...
  • mwj_88
  • mwj_88
  • 2015-07-27 15:26
  • 5592

延时执行的几种方式

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:@selector...
  • xiaoyangsavvy
  • xiaoyangsavvy
  • 2015-09-14 14:44
  • 347

动态代理两种方式及比较

这学期来一直在看面经,反而很少动手去写东西了,今天就破一次例动动贱手!  AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时...
  • Summer_YuXia
  • Summer_YuXia
  • 2017-05-24 01:11
  • 431

Android中实现延时执行操作的几种方法

在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是一个引导页面,过了两三秒后,会自动跳转到主界面。这就是一个延时操作。 下面是实现延时执行操作的几种方法:**1.使用线程的休眠实现延时操作** new Thread() { ...
  • mq2856992713
  • mq2856992713
  • 2016-07-23 16:45
  • 28833
    个人资料
    • 访问:167933次
    • 积分:2994
    • 等级:
    • 排名:第13916名
    • 原创:115篇
    • 转载:124篇
    • 译文:3篇
    • 评论:7条
    最新评论