xcode 9.2 iOS swift计时器

问题描述 投票:-3回答:3

我几年前使用过Xcode和swift,现在又回来了,我正在尝试制作一个每秒执行一次程序的计时器。但是使用这个新的swift和Xcode 9.2,NSTimer和Timer.scheduledTimer不再存在,我找不到任何关于如何在这个新版本的Xcode中制作计时器的文档。任何人都可以帮助并告诉我如何做到这一点。提前致谢。

swift xcode nstimer
3个回答
0
投票

在Swift 4中,你应该使用'Timer':

var timer: Timer!
timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(runTimedCode), userInfo: nil, repeats: true)

在您的情况下,您应该将'repeats'设置为true。确保在完成计时器后使计时器无效:

timer.invalidate()

把“@obj”放在你的功能面前。你准备好了。

@obj fun runTimedCode() {
   // do your stuff
}

祝好运!


0
投票

Timer.scheduleTimer仍然存在。试着写。


-2
投票

您需要为运行循环添加计时器:

let aTimer = Timer(timeInterval: 1, repeats: true, block: { (timer) in
    //do things. Don't forget about retain cycles.
})
RunLoop.current.add(aTimer, forMode: .defaultRunLoopMode)

编辑:

我的不好,没有注意到关于预定计时器的问题。感谢DavidRönnqvist注意到并纠正了我。

© www.soinside.com 2019 - 2024. All rights reserved.