grand central dispatch - How does DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) work in Swift 3? -
in swift 3 syntax of gcd has changed quite bit.
a call dispatch_after() looks this:
dispatchqueue.main.asyncafter(deadline: .now() + 5.0) {//do something}
that code invoke block 5 seconds after it's called.
how work? docs deadline parameter dispatch_time_t
, typealias uint64. assume it's mach time in nanoseconds. however, .now() + delay
syntax adding decimal seconds value. doesn't dispatchtime.now() return uint64 ? if so, adding decimal seconds should not work. if anything, expect value added .now()
treated nanoseconds, not useful.
(in swift 2 used have multiply value constant number of nanoseconds per second.)
ok, found answer own question in thread:
how write dispatch_after gcd in swift 3?
apparently there override of +
operator takes dispatchtime
, double, treats double decimal seconds, , returns resulting dispatchtime
.
Comments
Post a Comment