gpt4 book ai didi

swift - Swift 中的简单数学运算无法正常工作

转载 作者:行者123 更新时间:2023-11-28 11:23:53 29 4
gpt4 key购买 nike

好吧,假设我有一个 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 行它说 无法找到并重载接受提供的参数的“init”。我究竟做错了什么?这在 Swift 领域是 Not Acceptable 吗?

最佳答案

这完全取决于您在何处应用强制转换:

let timeInterval = -now.timeIntervalSinceNow

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

根本问题是 now.timeIntervalSinceNow 返回一个 NSTimeInterval,它是一个 float 。结果,下面是一个编译错误:

let minutes = Int(timeInterval - seconds) / 60

但是,Xcode 报告的错误 Could not find and overload for 'init' that accepts the supplied arguments 是不正确的,并不是这里的根本原因。

关于swift - Swift 中的简单数学运算无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091073/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com