可以延迟 Today Extensions 上的功能执行 (iOS)

It is possible to delay the execution of a function on Today Extensions (iOS)

我想延迟从 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)