Swift 开关箱在“之间切换”;“几小时前”;或;“几天前”;对于上载日期,比较Int值会返回错误

Swift 开关箱在“之间切换”;“几小时前”;或;“几天前”;对于上载日期,比较Int值会返回错误,swift,switch-statement,Swift,Switch Statement,我想用一个开关盒来设置上传日期。我这样做的方式是将上传时间和当前时间之间的时间转换为秒,然后根据它们是否大于某个值在它们之间切换,60代表一分钟等等 switch timeDifference { case timeDifference < 60: 但是,执行此操作时,它会返回一个错误,说明无法比较Int Expression pattern of type 'Bool' cannot match values of type 'Int' 我不完全理解这个错误意味着什么,所以请对此进行

我想用一个开关盒来设置上传日期。我这样做的方式是将上传时间和当前时间之间的时间转换为秒,然后根据它们是否大于某个值在它们之间切换,60代表一分钟等等

switch timeDifference {
case timeDifference < 60:
但是,执行此操作时,它会返回一个错误,说明无法比较Int

Expression pattern of type 'Bool' cannot match values of type 'Int'
我不完全理解这个错误意味着什么,所以请对此进行解释,但看看其他类似的问题,可以在切换情况下进行比较


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

您的
大小写
值是一个布尔表达式,不能与
Int
匹配

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

switch timeDifference {
    case let t where t < 60:
        // do something
开关时差{
案例t,其中t<60:
//做点什么
正如@MartinR在评论中所建议的那样,您可以通过以下方式获得更好的服务:

开关时差{
案例0..<代码>案例0。。
switch timeDifference {
    case let t where t < 60:
        // do something
switch timeDifference {
    case 0..<60:
        // do something