使用Swift查找NSDates之间的时间差(以秒为单位)
发布时间:2020-12-14 06:07:30 所属栏目:百科 来源:网络整理
导读:我在写一段代码,我想计算一个按钮按下多长时间。为了做到这一点,我记录了一个NSDate()当按钮被按下,并尝试使用timeIntervalSinceDate函数时释放按钮。这似乎工作,但我找不到任何方式打印结果或将其切换到一个整数。 var timeAtPress = NSDate() @IBActio
我在写一段代码,我想计算一个按钮按下多长时间。为了做到这一点,我记录了一个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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |