项目介绍:
MKImpulse是一个用来代替系统NSTimer的高精度脉冲器
系统的NSTimer是添加到Runloop中的, 在系统繁忙时会造成偏差, 时间越长, 偏差越大
而MKImpulse是基于GCD编写的脉冲器, 精度由CPU时钟进行计算, 误差可以平稳的控制在千分之一秒内
项目已上传至Github, 该项目现已支持使用CocoaPods下载
优点
- 高精度
- 高度可控性
- 自防止内存泄漏
- 进行多任务操作
安装
使用CocoaPods安装(1.0.0及之后的版本)
[Objective-C] 查看源文件 复制代码
source 'https://github.com/CocoaPods/Specs.git' target 'your project name' do pod 'MKImpulse' end
使用CocoaPods安装(1.0.0之前的版本)
pod ‘MKImpulse’
手动安装
从终端下载仓库
$git clone https://github.com/SYFH/MKImpulse.git
使用
简单使用
回调式
[Objective-C] 查看源文件 复制代码
#import "MKImpulseManager.h" [[MKImpulseManager defaultManager] impulseWithRepeat:3 action:^{ NSLog(@"action_2:%@", [NSThread currentThread]); }];
目标-响应式
[Objective-C] 查看源文件 复制代码
#import "MKImpulseManager.h" [[MKImpulseManager defaultManager] impulseWithRepeat:10 target:self selector:@selector(testMethod)];
自定属性
自定脉冲间隔, 开始时间, 脉冲间隔, 脉冲精度, 执行线程
[Objective-C] 查看源文件 复制代码
[[MKImpulseManager defaultManager] impulseWithQueue:IMPULSE_GLOBAL_QUEUE repeat:5 start:1 interval:2 accuracy:0 action:^{ NSLog(@"你要执行的任务"); }]; [[MKImpulseManager defaultManager] impulseWithQueue:IMPULSE_GLOBAL_QUEUE repeat:IMPULSE_UNLIMITED start:1 interval:2 accuracy:0 target:self selector:@selector(testMethod)];
DEMO 直接下载: