2015-02-09 61 views
0

我想延遲在從今日擴展中加載的框架內的方法執行。有可能延遲在今日擴展(iOS)上的函數執行

我已經試過這樣:

接收任務和時間的函數等待

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

dispatch_time發生在納秒的時間差,不以毫秒爲單位,所以很可能你的函數的實際工作,它只是關閉的1000000嘗試以下因素:

let popTime = dispatch_time(DISPATCH_TIME_NOW, delayInMilliseconds * NSEC_PER_MSEC) 
+0

是的,很好的抓住,它的工作現在。謝謝! – 2015-02-09 20:36:39