如何将一个变量的整数与另一个变量的整数相加

How to add a variable's integer to another variable's integer

我正在尝试将 randomAmountOfTime 添加到 DispatchTime.now(),但出现错误。

错误:

Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int'

这是我所做的:

var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + randomAmountOfTime

Dispatch Time 是浮点数,所以必须传入@rmaddy 提供的Double 类型或DispatchTime。 Swift 无法将 Int 和 DispatchTime 相加(因为 DispatchTime 中没有提供运算符,您可以创建自定义扩展)。 Float 和 DispatchTime 也是如此——由于某种原因,这些方法在私有 API 中不可用。

应该这样做:

var randomAmountOfTime = Double(arc4random_uniform(5))

let when = DispatchTime.now() + randomAmountOfTime

如需进一步了解,您可以前往

编辑:

您可以创建自定义文件(如 DispatchTime+Int.swift)并创建用于将 Int 和 DispatchTime 相加的自定义运算符:

  public func + (left: Int, right: DispatchTime) -> DispatchTime {
    return Double(left) + right
}

假设你的randomAmountOfTime是秒,你可以使用DispatchTimeInterval.seconds

var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + DispatchTimeInterval.seconds(randomAmountOfTime)