I'm trying to set a variable time delay for a timer in Swift4, but when I put in the variable I get the error:
Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int32'
I used the code:
let when = (DispatchTime.now() + (5 * x))
The Variable "x" is an Int32
Please help if you know how to fix it.
var dispatchAfter = DispatchTimeInterval.seconds(1)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + dispatchAfter, execute: {
// Do your thing
})
You could do this:
let x: Int32 = 2
let when = (DispatchTime.now().uptimeNanoseconds + (5 * UInt64(x)))
The problem is that you can not sum different types. And DispatchTime is represented using 64 bits (unsigned) so you can cast it using UInt64(x).
To get the UInt64 from DispatchTime you can use uptimeNanoseconds or rawValue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With