Swift中的简单数学运算不能正常工作

时间:2014-06-06 21:44:22

标签: swift

好吧,让我们假设我有一个NSDate对象date,这是过去的,我想计算已经过的秒数。我就是这样做的:

let timeInterval = -date.timeIntervalSinceNow

然后我想将其分解为分钟,秒和厘秒:

let seconds = Int(timeInterval) % 60
let minutes = Int(timeInterval - seconds) / 60
let centiSeconds = Int((timeInterval - Int(timeInterval)) * 100)

除了编译器抱怨最后两行,我无法弄清楚原因。

对于minutesCould not find and overload for '/' that accepts the supplied argumentscentiSeconds行表示Could not find and overload for 'init' that accepts the supplied arguments。我究竟做错了什么?在Swift-land中这不是可以接受的吗?

1 个答案:

答案 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不正确,并且不是此处的根本原因。