由于 NSTimer 要加到 runloop 中才能工作,这样的话 runloop 在跑圈的时候,如果遇到了当前线程任务比较繁忙,那么它处理 NSTimer 的时机就会滞后,导致 NSTimer 不够准时.因为我们可以用 GCD 的 dispatch_soure_t 去实现一个自己的定时器,而且还比较准时不受 Runloop 影响
YVTimer API 设计 尽可能的仿照 NSTimer
@interface YVTimer : NSObject
/**
定时器类方法创建 立即开启
*/
+ (instancetype)timerWithTimeInterval:(NSTimeInterval)ti
target:(id)aTarget
selector:(SEL)aSelector
repeats:(BOOL)yesOrNo;
/**
定时器类方法创建 指定开启时间
*/
+ (instancetype)timerWithFireTime:(NSTimeInterval)start
interval:(NSTimeInterval)ti
target:(id