使用Swift查找NSDates之间的时间差(以秒为单位)

使用Swift查找NSDates之间的时间差(以秒为单位),第1张

概述我在写一段代码,我想计算一个按钮按下多长时间。为了做到这一点,我记录了一个NSDate()当按钮被按下,并尝试使用timeIntervalSinceDate函数时释放按钮。这似乎工作,但我找不到任何方式打印结果或将其切换到一个整数。 var timeAtPress = NSDate() @IBAction func pressed(sender: AnyObject) { printl 我在写一段代码,我想计算一个按钮按下多长时间。为了做到这一点,我记录了一个NSDate()当按钮被按下,并尝试使用timeIntervalSinceDate函数时释放按钮。这似乎工作,但我找不到任何方式打印结果或将其切换到一个整数。
var timeatPress = NSDate() @IBAction func pressed(sender: AnyObject) {    println("pressed")    timeatPress = NSDate()}@IBAction func released(sender: AnyObject) {    println("released")    var elapsedtime = NSDate.timeIntervalSinceDate(timeatPress)    duration = ???}

我看过一些类似的问题,但我不知道C,所以我很难理解给出的答案。如果有一个更有效的方法来确定按钮被按下多长时间我接受建议。提前致谢。

您尝试计算elapsedtime时间不正确。在Swift 3中,它将是:
let elapsed = Date().timeIntervalSince(timeatPress)

或者,在Swift 2:

let elapsed = NSDate().timeIntervalSinceDate(timeatPress)

注意NSDate引用之后的()。 NSDate()/ Date()实例化一个新的日期对象,然后timeIntervalSinceDate返回它和timeatPress之间的时间差。这将返回一个浮点值(技术上,一个NSTimeInterval / TimeInterval)。

如果你想把它截断为Int值,你可以使用:

let duration = Int(elapsed)

而且,BTW,你的timeatPress变量的定义不需要实例化一个NSDate对象。我想你打算:

var timeatPress: Date!  // use `NSDate!` in Swift 2

这将变量定义为NSDate变量(隐式解包的变量),但你可能推迟该变量的实例化直到按下被调用。

或者,我经常使用CFabsoluteTimeGetCurrent(),例如,

var start: CFabsoluteTime!

当我想设置startTime,我做以下:

start = CFabsoluteTimeGetCurrent()

当我想计算经过的秒数,我做以下:

let elapsed = CFabsoluteTimeGetCurrent() - start
总结

以上是内存溢出为你收集整理的使用Swift查找NSDates之间的时间差(以秒为单位)全部内容,希望文章能够帮你解决使用Swift查找NSDates之间的时间差(以秒为单位)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1059350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存