定时器(iOS)

作者: iOS_成才录 | 来源:发表于2015-11-12 19:50 被阅读483次

    NSTimer

    注意:

    • 1、NSTimer应该是weak
      • 为什么NSTimer应该是weak,
        • 因为只要创建一个NSTimer对象, 该对象就会被主线程强引用
    @property (weak, nonatomic) NSTimer *timer;
    
    • 2、scheduledTimerWithTimeInterval: 创建一个定时器, 并且立即可是计时, 系统就会自动将NSTimer添加到主线程中
       // 如果给userInfo赋值, 那么定时器调用的方法就必须接受参数, 并且接受的参数就是NSTimer
        // 只要调用scheduled方法创建一个NSTimer对象, 系统就会自动将NSTimer添加到主线程中
        self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextPage:) userInfo:@"cjp" repeats:YES];
    
       // 参数说明:
         scheduledTimerWithTimeInterval: 创建一个定时器, 并且立即可是计时
         TimeInterval: 间隔时间
         target: 调用谁的方法
         selector: 调用什么方法
         userInfo: 需要传递什么参数
         repeats: 是否重复
         每隔2.0秒调用一次self的nextPage方法, 并且不传递任何参数
    
    
    • 3、将定时器添加到主运行循环
      • NSRunLoopCommonModes模型:—> 就会进行页面其他操作,定时器不会受其影响
    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
    
    • 4、关闭定时器 invalidate方法
      • NSTimer是一次性的, 只要invalidate之后就不能使用了
      • 只要调用invalidate方法, 系统就会将NSTimer从主线程移除, 并且销毁NSTimer对象

    [self.timer invalidate];

    相关文章

      网友评论

        本文标题:定时器(iOS)

        本文链接:https://www.haomeiwen.com/subject/iyhxhttx.html