美文网首页
iOS NSTimer的使用

iOS NSTimer的使用

作者: MavinShan | 来源:发表于2017-12-24 02:14 被阅读0次

    NSTimer创建

    方法一

    NSTimer *timer = [NSTimer timerWithTimeInterval:1.0f
                                    target:self
                                  selector:@selector(doSomeThing)
                                  userInfo:nil repeats:YES];
    // 添加到RunLoop
    [[NSRunLoop currentRunLoop] addTimer:timer
                                 forMode:NSRunLoopCommonModes];
    
    

    这里要将timer添加到RunLoop,选择NSRunLoopCommonModes。如选择NSDefaultRunLoopMode,当页面滑动时,Mode变为NSEventTrackingRunLoopMode,计时器会暂停。

    //第二种
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f
                                             target:self
                                           selector:@selector(doSomeThing)
                                           userInfo:nil
                                            repeats:YES];
    

    第二种方式是默认使用 NSDefaultRunLoopMode。
    注:RunLoopMode
    NSDefaultRunLoopMode:默认的运行模式,用于大部分操作,除了NSConnection对象事件。
    NSConnectionReplyMode:用来监控NSConnection对象的回复的,很少能够用到。
    NSModalPanelRunLoopMode:用于标明和Mode Panel相关的事件。
    NSEventTrackingRunLoopMode:用于跟踪触摸事件触发的模式(例如UIScrollView上下滚动)。
    NSRunLoopCommonModes:是一个模式集合,当绑定一个事件源到这个模式集合的时候就相当于绑定到了集合内的每一个模式。

    NSTimer的启动与暂停

    // 立即启动
    [timer fire];
     // 开始
    [timer setFireDate:[NSDate distantPast]];
    // 停止
     [timer setFireDate:[NSDate distantFuture]];
    

    如果不设置FireDate,则经过时间间隔后开始。

    NSTimer销毁

    NSTimer使用后必须销毁。

    - (void)dealloc {
    [self.timer invalidate];
    self.timer = nil;
    }
    

    相关文章

      网友评论

          本文标题:iOS NSTimer的使用

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