如何将变量的整数添加到另一个变量的整数

时间:2018-02-03 22:44:26

标签: swift arc4random

我试图将randomAmountOfTime添加到DispatchTime.now(),但它给了我一个错误。

错误:

  

二元运算符' +'不能应用于类型' DispatchTime'的操作数。和' Int'

这就是我的所作所为:

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

2 个答案:

答案 0 :(得分:0)

Dispatch Time是浮点数,因此您必须传递@rmaddy提供的Double type或DispatchTime。 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
}

答案 1 :(得分:0)

假设您的randomAmountOfTime为秒,则可以使用DispatchTimeInterval.seconds

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