(转)[IOS]Timer定时器

MoMo 2018-03-01

转自:http://blog.csdn.net/springjustin/article/details/50978671

 

NSTimer

方式1

    // 创建定时器

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(test) userInfo:nil repeats:YES];

 

    // 停止定时器

    [timer invalidate];

 

方式2

    // 创建定时器

    NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(test) userInfo:nil repeats:YES];

    // 将定时器添加到runloop中,否则定时器不会启动

    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

 

    // 停止定时器

    [timer invalidate];

方式1会自动将创建的定时器以默认方式添加到当前线程runloop中,而无需手动添加。但是在此种模式下,当滚动屏幕时runloop会进入另外一种模式,定时器会暂停,为了解决这种问题,可以像方式2那样把定时器添加到NSRunLoopCommonModes模式下。

方式1和方式2在设置后都会在间隔设定的时间(本例中设置为2s)后执行test方法,如果需要立即执行可以使用下面的代码。

注销定时器:[time fire];

相关推荐