小编aro*_*124的帖子

dispatch_after在swift中执行时不会运行代码

当我使用dispatch_after方法产生延迟时,它永远不会在它之后执行代码.我需要返回一个数组,但它总是跳过它.

这是matt的延迟方法:

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}
Run Code Online (Sandbox Code Playgroud)

以下是发生错误的方法:

func rollDice() -> Array<Int> {
    var diceArray = [Int]()
    let timerTime:NSTimeInterval = 0.3
    delay(timerTime) {
        //my code
    }
    return diceArray //NEVER GETS HERE
}
Run Code Online (Sandbox Code Playgroud)

grand-central-dispatch ios swift

-1
推荐指数
1
解决办法
76
查看次数

标签 统计

grand-central-dispatch ×1

ios ×1

swift ×1