博客> Swift语言关于NSTimer的使用
Swift语言关于NSTimer的使用
2017-09-24 04:44 评论:0 阅读:254 梧桐一叶
swift NSTimer

转化自cocoaChina公众号

1、NSTimer创建方法 let timer:NSTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(action:), userInfo: nil, repeats: true) 注解:1)timeInterval:执行之前等待的时间间隔。比如设置成1.0,就代表1秒后执行方法action 2)target:需要执行方法的对象 3)selector:需要执行的方法 4)repeats:是否需要循环

2、NSTimer释放方法 timer?.invalidate()

注意:调用创建方法后,target对象的计数器会加1,知道执行完毕,自动减1。如果是循环执行的话,就必须手动关闭,否则可以不执行释放方法。

3、特性 存在延迟,不管是一次性的还是周期性的timer的实际触发事件的时间,都会与所加入的RunLoop和RunLoopModel有关,如果此RunLoop正在执行一个连续性的运算,timer就会被延时触发。重复性的timer遇到这种情况,如果延迟超过了一个周期,则会在延时结束后立刻执行,并按照之前指定的周期继续执行。

注意:必须加入RunLoop

使用上面的创建方式,会自动把timer加入MainRunloop的NSDefaultRunLoopMode中。如果使用以下方式创建定时器,就必须手动加入RunLoop: let timer:NSTimer = NSTimer.init(timeInterval: 5, target: self, selector: #selector(action:), userInfo: nil, repeats: true) NSRunLoop.mainRunLoop().addTimer(timer, forMode: NSDefaultRunLoopMode)

收藏
1
sina weixin mail 回到顶部