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