我正试图将randomAmountOfTime添加到DispatchTime.now()中,但它给了我一个错误。
错误:
二进制运算符“+”不能应用于“DispatchTime”和“Int”类型的操作数
以下是我所做的:

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

最佳答案

分派时间是浮点数,因此必须传递@rmaddy提供的Double类型或分派时间。Swift不能将Int和DispatchTime相加(因为DispatchTime中没有提供运算符,所以可以创建自定义扩展名)。Float和DispatchTime也是如此——由于某些原因,这些方法在私有API中不可用。
这应该可以做到:

var randomAmountOfTime = Double(arc4random_uniform(5))

let when = DispatchTime.now() + randomAmountOfTime

为了进一步了解,您可以前往here
编辑:
您可以创建自定义文件(如DispatchTime+Int.swift)并创建用于将Int和DispatchTime相加的自定义运算符:
  public func + (left: Int, right: DispatchTime) -> DispatchTime {
    return Double(left) + right
}

关于swift - 如何将变量的整数添加到另一个变量的整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48602846/

10-10 08:40