2013-11-29 35 views
0

我能夠在Objective-C中創建一個並行循環嗎? 例如,我希望能夠運行正常的程序,使按鈕和其他項目響應,但也有一個連續的循環,每五秒鐘遞增一個整數。這是可能的,還是有另一種方式來做到這一點?在不干擾GUI的情況下增加一個變量

回答

0

使用此..這將在後臺創建一個計時器5秒鐘。用你的代碼替換你的功能。解決方案運行NSTimer每5秒後

double delayInSeconds = 5.0; // 5 second delay dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(),^{ //Your code });

0
  1. 一個會閃光。這不是一個「連續循環」,但它是每X秒完成一項短暫任務的完美解決方案。

  2. 另一種可能性是寫一個普通的for環與sleep並將其指派給一個背景隊列(dispatch_asyncdispatch_get_global_queue)。這比NSTimer複雜一點,但你也可以得到一個真正的「連續循環」,與你的普通代碼並行運行。

  3. 你也可以使用-performSelectorInBackground或創建一個真正的背景NSThread與你的循環,但實質上(2),更復雜。

閱讀可可Concurrency Programming Guide瞭解詳情。

相關問題