gpt4 book ai didi

swift - 切换大小写以在 "hours ago"或 "days ago"之间更改上传日期,比较 Int 值会返回错误

转载 作者:行者123 更新时间:2023-11-30 11:26:55 25 4
gpt4 key购买 nike

我正在尝试使用 switch case 来格式化上传日期。我这样做的方法是将上传时间和当前时间之间的时间转换为秒,然后根据它们是否大于某个值(60 表示一分钟等)在它们之间进行切换。

switch timeDifference {
case timeDifference < 60:

时间差是一个 Int 值,60 是要与之比较的数字。

仅供引用,这就是我获取该值的方式。

timeDifference = Calendar.current.dateComponents([.second], from: targetDate, to: Date()).second

但是,执行此操作时,它会返回一个错误,指出它无法比较 Int。

Expression pattern of type 'Bool' cannot match values of type 'Int'

我不完全理解这个错误的含义,因此我们将不胜感激,但看看其他类似的问题,可以在 switch case 中进行比较。

另一个选项是将值截断为更易于管理的值,但我不确定如何做到这一点,因为时间值不是以 10 为基数。或者我只是执行 if-else。

最佳答案

您的 case 值是 bool 表达式,无法与 Int 匹配。

如果您确实想要进行比较,请使用 where 子句:

switch timeDifference {
case let t where t < 60:
// do something

正如 @MartinR 在评论中建议的那样,使用 Interval Matching 可能会为您提供更好的服务。 :

switch timeDifference {
case 0..<60:
// do something

关于swift - 切换大小写以在 "hours ago"或 "days ago"之间更改上传日期,比较 Int 值会返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50643714/

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