好吧,让我们假设我有一个NSDate对象date
,这是过去的,我想计算已经过的秒数。我就是这样做的:
let timeInterval = -date.timeIntervalSinceNow
然后我想将其分解为分钟,秒和厘秒:
let seconds = Int(timeInterval) % 60
let minutes = Int(timeInterval - seconds) / 60
let centiSeconds = Int((timeInterval - Int(timeInterval)) * 100)
除了编译器抱怨最后两行,我无法弄清楚原因。
对于minutes
行Could not find and overload for '/' that accepts the supplied arguments
,centiSeconds
行表示Could not find and overload for 'init' that accepts the supplied arguments
。我究竟做错了什么?在Swift-land中这不是可以接受的吗?
答案 0 :(得分:3)
这完全取决于你应用演员阵容的地方:
let timeInterval = -now.timeIntervalSinceNow
let seconds = Int(timeInterval) % 60
let minutes = (Int(timeInterval) - seconds) / 60
let centiSeconds = timeInterval - floor(timeInterval)) * 100
潜在的问题是now.timeIntervalSinceNow
返回一个浮点的NSTimeInterval。因此,以下是编译错误:
let minutes = Int(timeInterval - seconds) / 60
但是,错误Xcode报告Could not find and overload for 'init' that accepts the supplied arguments
不正确,并且不是此处的根本原因。