NSTimer的使用

NSTimer

在iOS开发过程中,NSTimer还是经常使用的,当然了,学习了GCD之后,有很多一次行的功能会使用GCD进行实现。

  • NSTimer的不同使用方式
    /**
     参数说明
     1. 时间间隔,double
     2. 监听时钟触发的对象
     3. 调用方法
     4. userInfo,可以是任意对象,通常传递nil
     5. repeats:是否重复
     */

    // 1>
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:@"hello timer" repeats:YES];
    // scheduledTimerWithTimeInterval 方法本质上就是创建一个时钟,
    // 添加到运行循环的模式是DefaultRunLoopMode(这个模式将会监听点击操作等操作,但是一旦有拖动的事件时,将不在监听)


    // 2> 与1等价
    self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
    // 将timer添加到运行循环
    // 模式:默认的运行循环模式
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];


    // 3>
    self.timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
    // 将timer添加到运行循环
    // 模式:NSRunLoopCommonModes的运行循环模式(监听滚动模式)
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];

    // 停止时钟,invalidate是唯一停止时钟的方法
    // 一旦调用了invalidate方法,timer就无效了,如果再次启动时钟,需要重新实例化,所以在调用invalidate方法之后,需要将timer设置成nil
    [self.timer invalidate];

你可能感兴趣的:(NSTimer的使用)