美文网首页内存管理
iOS中定时器问题

iOS中定时器问题

作者: HJXu | 来源:发表于2016-02-11 11:30 被阅读149次

在iOS开发中有三种方式创建定时器
1,第一种
scheduledTimerWithTimeInterval:invocation:repeats:
或者scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:这两个类方法创建一个timer并把它指定到一个默认的runloop模式中,所以这种方式不需要我们手动添加到系统的runloop中
2,第二种
timerWithTimeInterval:invocation:repeats:
或者timerWithTimeInterval:target:selector:userInfo:repeats:这两个类方法创建一个timer的对象,但并不会自动添加到系统run loop中 (你必须手动的调用NSRunLoop下对应的方法 addTimer:forMode: 去将它添加到一个runloop模式中.)
3,第三种
initWithFireDate:interval:target:selector:userInfo:repeats: 方法分配并创建一个NSTimer的实例 (当创建之后,你必须手动的调用NSRunLoop下对应的方法addTimer:forMode:去将它制定到一个runloop模式中.)
[timer fire];// 可以通过fire这个方法去触发timer,即使timer的firing time没有到达
NSTimer
停止 [time setFireDate:[NSDate distantFunture]]
启动 [time setFireDate:[NSDate distanPast]]
继续[timer setFireDate:[NSDate date]]
关于内存问题:
如果我们启动了一个定时器,在某个界面释放前,将这个定时器停止,甚至置为nil,都不能是这个界面释放,原因是系统的循环池中还保有这个对象。所以我们需要加上下面的代码:

        [timer invalidate];
    }
    timer=nil;

注:以下是对上面方法参数解释:
1、参数repeats是指定是否循环执行,YES将循环,NO将只执行一次。
2、timerWithTimeInterval这两个类方法创建出来的对象如果不用 addTimer: forMode方法手动加入主循环池中,将不会循环执行。并且如 果不手动调用fair,则定时器不会启动。
3、scheduledTimerWithTimeInterval这两个方法不需要手动调用fair, 会自动执行,并且自动加入主循环池。
4、init方法需要手动加入循环池,它会在设定的启动时间启动。

关于定时器的文章链接
http://www.cnblogs.com/ygm900/p/3946776.html

相关文章

  • iOS进阶-谈谈定时器

    目录 iOS提供定时器API 定时器开发中的坑 一、 iOS提供定时器API 二、定时器开发中的坑 2.1、必须办...

  • iOS中的定时器

    点击这里>> cocoaChina: iOS中的定时器 iOS中定时器有三种,分别是NSTimer、CADispl...

  • GCD定时器使用

    iOS中的常用定时器分为这几类: NSTimer CADisplayLink GCD定时器 选择GCD定时器原因:...

  • iOS中定时器问题

    在iOS开发中有三种方式创建定时器1,第一种scheduledTimerWithTimeInterval:invo...

  • iOS:NSTimer的几种创建方式

    在iOS开发中,经常会用到定时器,iOS中常用的定时器有三种:NSTimer,GCD,CADisplayLink。...

  • 定时器的使用介绍

    iOS中的定时器大致分为这几类: NSTimer CADisplayLink GCD定时器 (一)NSTimer ...

  • iOS Timer

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD。...

  • iOS三大定时器

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD。...

  • 无标题文章

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

  • Flutter 网络请求类封装及搜索框实现

    Flutter 中定时器的使用 在 Flutter 中定时器相对 iOS 来说比较好的一点就是定时器事件的执行不会...

网友评论

    本文标题:iOS中定时器问题

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