我想延迟从Today Extension中加载的框架内方法的执行。

我已经试过了:

接收任务和等待时间的功能

func playCPUWithDelay(delayInMilliSeconds:Int64,scheduledTask: ()->Void)
 {

    let popTime = dispatch_time(DISPATCH_TIME_NOW,delayInMilliSeconds) // 1
    dispatch_after(popTime, GlobalMainQueue) { // 2

    scheduledTask()

}


存在

var GlobalMainQueue: dispatch_queue_t {
return dispatch_get_main_queue()
}


但它立即运行

也曾经尝试过..

NSThread.sleepForTimeInterval(NSTimeInterval(5000))


但是此调用会挂断该应用程序,从而使该应用程序在超过该时间之前一直无响应,直到永远。

最佳答案

dispatch_time花费的时间增量是十亿分之一秒,而不是毫秒,因此您的函数可能确实起作用了,只是相差1000000。尝试:

let popTime = dispatch_time(DISPATCH_TIME_NOW, delayInMilliseconds * NSEC_PER_MSEC)

关于ios - 可以延迟今日扩展(iOS)上功能的执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28418383/

10-11 18:04