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之间的时间差(以秒为单位)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)