ios - dispatch_after wont run code under it when executed in swift -
when use dispatch_after method produce delay never executes code after it. need return array skips on it.
here matt's delay method:
func delay(delay:double, closure:()->()) { dispatch_after( dispatch_time( dispatch_time_now, int64(delay * double(nsec_per_sec)) ), dispatch_get_main_queue(), closure) }
here method error occurs:
func rolldice() -> array<int> { var dicearray = [int]() let timertime:nstimeinterval = 0.3 delay(timertime) { //my code } return dicearray //never gets here }
you don't seem understand delay is. code operate in order:
func rolldice() -> array<int> { var dicearray = [int]() // 1 let timertime:nstimeinterval = 0.3 delay(timertime) { // 3 } return dicearray // 2 }
so, rolldice
return empty dicearray
before code inside delay
ever runs. whatever doing inside delay
ineffective point of view; has, , can have, no effect whatever on rolldice
returns.
Comments
Post a Comment