2012-09-06 76 views
0

正如標題所述,我有一個while循環,它將被執行,直到滿足某個條件,或者直到5秒鐘過去。iOS執行循環,直到特定時間的特定條件滿足爲止?

解決此問題的最佳方法是什麼?我已經看到一些關於NSTimer的簡單教程,但在我看來,在NSTimer內被觸發的選擇器將在指定的時間間隔後執行,無論如何。我只需要執行它,如果條件沒有得到滿足...

+0

不能你只需要使用一個while循環? – geminiCoder

回答

1

只需創建一個NSTimer預定的動作存儲計時器,如果你達到你想達到的目的去激活這個計時器,以便它不會觸發該動作。

基本上是:

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(yourAction) userInfo:nil repeats:NO]; 

some code 

//for deactivating the timer 
[timer invalidate]; 
timer = nil; 

你可以在主線程啓動的NSTimer(保證上面的代碼工作)與此:

[self performSelectorOnMainThread:@selector(startTimerMethod) withObject:someOrNoObject waitUntilDone:NO]; 
+0

這是正確的答案。 –

+0

我曾嘗試執行此操作,但沒有任何反應。可能是因爲我在後臺線程中調度計時器,我通過執行[self performSelectorInBackground:<#(SEL)#> withObject:<#(id)#>] – MegaManX

+0

您是否存儲對此計時器的引用?或者只是發佈相關的代碼片段 – lukaswelte

相關問題