NSTimer的初始化、暂停、继续和终结

初始化

    NSTimer的初始化一般都是使用类方法,类方法有四个,主要区别就是是否使用scheduled和NSInvocation。
    先说scheduled,初始化时使用了scheduled就就相当于以默认mode添加到NSRunLoop中,初始化后指定方法会被直接调用,
未使用scheduled不会直接调用指定方法,需要调用[NSRunLoop currentLoop]的方法addTimer:forMode:方法,
手动把NSTimer对象添加到NSRunLoop中后才会调用指定方法。
    接下来再说NSInvocation的作用,使用selector只能传递一个参数,但是当你的方法需要传递多个参数时怎么办?
这时就需要用到NSInvocation了,NSInvacation可以实现方法的多参数传递,具体用法我就不在这里多说了,读者可以自行查找。
    除了上面说的4个类方法外,NSTimer还有一个对象方法,利用FireDate进行初始化,内容很简单无歧义,不再多说。

暂停

    NSTimer没有提供直接的暂停方法,我们只有自己想办法来间接实现暂停效果,这里采用的方法就是利用NSTimer的属性fireDate。
fireDate的作用就是在指定的时间开启NSTimer。只要我们设置的开启时间够长,作用就相当于是暂停了。
代码:
[_timer setFireDate:[NSDate distantFuture]];

继续

    NSTimer的继续原理和暂停是一样的,都是利用FireDate。
代码:
[_timer setFireDate:[NSDate date]];

终结

    NSTimer的终结,系统给了方法
代码:
[_timer invalidate];
    这样就实现了NSTimer的初始化、暂停、继续和终结功能,希望对读者有用。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值