美文网首页
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中循环引用问题

    ios中循环引用问题 NO1: NSTimer 问题:当你创建使用NSTimer的时候,NSTimer会默...

  • 无标题文章

    iOS NSTimer使用详解-开启、关闭、移除 定时器定时器详解ios定时器关闭定时器NSTimer 1、要使用...

  • iOS NSTimer使用小结:

    NSTimer 是iOS开发中常用的定时器, NSTimer的使用常见的有两种方式: 1. [NSTimer t...

  • NSTimer循环引用的问题

    问题简介 在iOS中,NSTimer的使用非常频繁,但是NSTimer在使用中需要注意,避免循环引用的问题: 由于...

  • NSTimer

    深入NSTimer(iOS)iOS 中的 NSTimer关于NSRunLoop和NSTimer的深入理解

  • iOS延迟执行的三种方式

    1.NSTimer NSTimer 是iOS开发工作中经常会使用到,充当着定时器的作用。NSTimer不会阻塞主线...

  • NSTimer循环引用的几种解决方案

    前言 在iOS中,NSTimer的使用是非常频繁的,但是NSTimer在使用中需要注意,避免循环引用的问题。之前经...

  • 多线程与NSTimer

    1.Ios主线程,也称UI线程,在主线程中使用NSTimer,runloop是自动开启的,(如果NSTimer当前...

  • 利用NSProxy解决NSTimer内存泄漏问题

    在iOS开发中经常使用到NSTimer,我们都知道NSTimer会对target retain一次,导致相互强引用...

  • iOS开发 计时器的实现方式

    iOS中计时器常用的有两种方式 使用NSTimer类(Swift 中更名为 Timer) NSTimer 常用的初...

网友评论

      本文标题:iOS NSTimer的使用

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