这篇文章主要对比分析了iOS延迟执行的4种方式,比较iOS延迟执行方式的特点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
最近学习了延迟执行的几种方法,分享一下:
1.performSelector(NSObject)方法 2.NSTimer方法 3.GCD方法 4.sleep(NSThread)方法
一、performSelector方法:
代码如下:
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];
1.特点: 此方式要求必须在主线程中执行,否则无效。 是一种非阻塞的执行方式, 暂时未找到取消执行的方法。
二、定时器:NSTimer:
代码如下:
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
1.特点: 此方式要求必须在主线程中执行,否则无效。 是一种非阻塞的执行方式,可以通过NSTimer类的- (void)invalidate;取消执行
三、sleep方式:
代码如下:
[NSThread sleepForTimeInterval:1.0f];
1.特点: 此方式在主线程和子线程中均可执行。是一种阻塞的执行方式,建议放到子线程中,以免卡住界面 没有找到取消执行的方法
四、GCD方式:
代码如下:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{ [self delayMethod]; }); });
1.特点: 此方式可以在参数中选择执行的线程。 是一种非阻塞的执行方式,没有找到取消执行的方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
织梦狗教程
本文标题为:对比分析iOS延迟执行的4种方式
基础教程推荐
猜你喜欢
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Android中的webview监听每次URL变化实例 2023-01-23
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- android studio按钮监听的5种方法实例详解 2023-01-12
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- Flutter手势密码的实现示例(附demo) 2023-04-11
- Android多返回栈技术 2023-04-15
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
