这篇文章主要对比分析了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种方式


基础教程推荐
猜你喜欢
- iOS开发使用XML解析网络数据 2022-11-12
- Android开发Compose集成高德地图实例 2023-06-15
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Android实现短信验证码输入框 2023-04-29
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- Flutter进阶之实现动画效果(三) 2022-10-28
- IOS获取系统相册中照片的示例代码 2023-01-03
- iOS开发 全机型适配解决方法 2023-01-14