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

标签 ios swift ios8 ios8-today-widget today-extension

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

我试过这个:

接收任务和等待时间的函数

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 - 可以延迟 Today Extensions (iOS) 上的功能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28418383/

相关文章:

ios - NSDateIntervalFormatter 打印日期,即使 dateStyle 设置为 NSDateFormatterNoStyle

iOS - 从一个屏幕导航到多个屏幕

ios - 对用户权限授予结果执行功能?

ios - UIView自定义xib不显示

xcode - 编辑核心数据对象时发生 fatal error

iOS 8 CoreBluetooth 弃用 RSSI 方法

ios - 背景图像设置问题(github 上的 GHWalkThrough 库)

ios - 从远程数据库填充 UITableView 单元格

ios - CoreData 会复制对象吗?

uikit - UIActionSheet 可以多选 iOS8 – 不移除 UIWindow