美文网首页
ios开发-NSTimer计时器

ios开发-NSTimer计时器

作者: 不写昵称 | 来源:发表于2018-08-28 21:53 被阅读0次

    作用:用来定时重复执行某件事件
    注意:计时器需要放入到runloop中才能有用

    NSTimer常用方法

    + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
    + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval repeats:(BOOL)repeats block:(void (^)(NSTimer *timer))block
    

    //以上2个方法创建时会默认放入当前runloop中,默认runloop模式是NSDefaultRunLoop。创建时即可使用

    + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
    + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)interval repeats:(BOOL)repeats block:(void (^)(NSTimer *timer))block
    

    //以上2个方法创建后需要手动放入runloop中,并指定runloop模式后才可用。如
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

    - (void)fire;//重新开始计时器
    - (void)invalidate;//销毁计时器
    

    [timer invalidate];
     timer=nil;
    

    属性

    valid--是否可用
    userInfo--携带的信息
    fireDate--设置开启时间
    用法:
    timer.fireDate =  [NSDate distantFuture];//在未来某个时间开启,即暂停
    timer.fireDate =  [NSDate distantPast];//在过去的某个时间开始,即启动
    

    举例:

        //直接创建即可使用
       NSTimer * timer1 = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(doSomething:) userInfo:@"hello world" repeats:YES];
    
        //创建后需要手动加入到runloop中
        NSTimer * timer2 = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doSomething:) userInfo:@"hello world" repeats:YES];
        [[NSRunLoop currentRunLoop] addTimer:timer2 forMode:NSDefaultRunLoopMode];
    
    //销毁
        [timer invalidate];
        timer = nil;
    

    相关文章

      网友评论

          本文标题:ios开发-NSTimer计时器

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