可以在Today Extensions(iOS)上延迟执行某个功能

时间:2015-02-09 20:08:58

标签: ios swift ios8 ios8-today-widget 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))

但是此通话会暂停应用,使其无法响应超过该时间,直至永远。

1 个答案:

答案 0 :(得分:1)

dispatch_time需要一个以纳秒为单位的时间增量,而不是以毫秒为单位,因此您的功能可能实际上有效,只需要1000000倍。尝试:

let popTime = dispatch_time(DISPATCH_TIME_NOW, delayInMilliseconds * NSEC_PER_MSEC)