2013-07-22 149 views
0

我正在實現一個簡單的調度計時器來執行定時器調用兩分鐘後幾行代碼。代碼如下,停止dispatch_time_t當點擊一個按鈕

dispatch_time_t poptime = dispatch_time (DISPATCH_TIME_NOW, delayInSeconds *NSEC_PER_SEC); 
dispatch_after(poptime,dispatch_get_main_queue(), ^(void){ 

       //some code here 
}); 

我正在尋找的是要麼殺死或停止或修改定時器到無限時點擊一個按鈕。我有按鈕點擊功能,這個調度計時器寫在類的viewdidload函數中。

這可能嗎?請幫助 謝謝。

+1

這可能有所幫助:http://blog.spacemanlabs.com/2011/12/cancel-dispatch_after/ – trojanfoe

+0

是否有一個原因,您不能使用兩分鐘的NSTimer,然後在單擊按鈕時使其失效? – James

+0

@James我試過NSTimer,但它有點停止整個過程,並等待時間間隔 –

回答

1

AFAIK我知道你不能用GCD做。

使用:NSOperationQueue改爲使用cancelAllOperations取消操作。

2

一旦GCD塊被分派,你不能取消它。您應該使用類似NSTimer的內容。