[关闭]
@SanMao 2015-08-06T00:32:14.000000Z 字数 1265 阅读 1382

定时器的使用

知识补充


  1. // 屏幕1秒刷新60次,每一次屏幕刷新的时候就会调用,1秒调用60次
  2. // 创建一个定时器,target对象会调用sel方法
  3. + (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel;
  4. // 把定时器加入进程(一般是加入主进程)
  5. - (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSString *)mode;
  6. // 移除定时器方法
  7. - (void)invalidate;

NSTimer

  1. // 使用此方法创建NSTimer对象会自动加入到runloop中
  2. + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
  3. // 使用此方法创建NSTimer对象需要手动添加到runloop中
  4. + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
  5. - (void)fire; //立即触发定时器
  6. - (NSDate *)fireDate;//开始时间
  7. - (void)setFireDate:(NSDate *)date;//设置fireData,暂停、开始会用到
  8. - (NSTimeInterval)timeInterval;//延迟时间
  9. - (void)invalidate;//停止并删除
  10. - (BOOL)isValid;//判断是否有效
  11. - (id)userInfo;//通常用nil

延迟执行

  1. [NSThread sleepForTimeInterval:0.01];
  2. [NSThread sleepUntilDate:2.0];
  1. [self performSelector:@selector(run) withObject:nil afterDelay:2.0];
  2. // 2秒后再调用self的run方法
  1. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  2. // 2秒后执行这里的代码...
  3. });
  1. [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(test) userInfo:nil repeats:NO];
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注