iOS - Runloop在实际开发中的应用
- 控制线程生命周期(线程保活)
如果需要经常在子程序
执行任务,可能希望一个线程可以重复使用
,避免每次都要创建、销毁带来不必要的开销
ZSXPermenantThread.h
1 | objectivec复制代码typedef void (^ZSXPermenantThreadTask)(void); |
ZSXPermenantThread.m
1 | objectivec复制代码#import "ZSXPermenantThread.h" |
在 ViewController中使用
1 | less复制代码@interface ViewController () |
运行结果:
- 解决NSTimer在滑动时停止工作的问题
2.1. 案例
使用NSTimer创建一个定时器,循环打印
1 | objectivec复制代码[NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) { |
当scrollView 滚动时,定时器就停止了
2.2 解决
1 | objectivec复制代码NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) { |
- 监控应用卡顿
- 性能优化
@oubijiexi
本文转载自: 掘金