ZCLooper 1.0.2

ZCLooper 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新版本2016年4月

ooppstef维护。



ZCLooper 1.0.2

  • 作者:
  • Charles
  • 性能更优的计时器。
  • 使用CADisplaylink代替NSTimer。更精确。
  • 默认NSRunLoopCommonModes。
  • 使用block代替target-action。
  • 最大/最小延迟以支持某些异步动作/耗时动作
  • 支持暂停和继续

使用方法

普通计时器(作为NSTimer)

无需处理isResponseReturned

_looper = [ZCLooper new];
_looper.retryMinTimes = 1;
_looper.repeatTimeSpace = 1;

//repeat in 1 * 1 = 1s
[_looper startLooperWithHandler:^(ZCLooper *looper) {
    NSLog(@"hello");
}
[_looper fire];

异步动作计时器(如:网络)

您必须处理属性:isResponseReturned

此属性告诉loop器处理已完成,或者将按最大延迟重复

_looper = [ZCLooper new];
_looper.retryMaxTimes = 20;
_looper.retryMinTimes = 10;
_looper.repeatTimeSpace = 0.5;

//max repeat in 20 * 0.5 = 10s, min in 10 * 0.5 = 5s
[_looper startLooperWithHandler:^(ZCLooper *looper) {
    NSURLSession *session...
    NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

    //deal with isResponseReturned
     looper.isResponseReturned = YES;
    }];
    [task resume];

}
[_looper fire];

需求

iOS7+ 和 ARC

安装

通过CocoaPods获得

pod 'ZCLooper'