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

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -