2010-07-04 38 views
0

是否有可能做到這樣的事情?1秒鐘:客觀c編碼幫助

if (myVariable == 100 for more than 1 second) { 
} 

因此,如果myVariable等於100超過1秒,請執行一些操作。

謝謝! Elijah

+0

我會說,你似乎採取了錯誤的方法來解決問題。這段代碼的上下文是什麼?你爲什麼想要做這樣的事情?也許我們可以找出另一種方法。 – 2010-07-04 13:47:02

+0

嗯,我正在做一個語音識別引擎,以便當你停止說話時(聲音低於一定水平),它從文本字段(按回車鍵)發送命令。作爲故障安全(幾乎...),我只想在完全確定講話者已停止講話時發送命令。有任何想法嗎?? – objectiveccoder001 2010-07-04 18:36:44

回答

0

您可以從if()語句的主體中啓動NSTimer,該語句具有1秒的計時器。所以像

if(myVariable >= 100 && myTimer == nil){ 
    //NSTimer code here 
}else if(myVariable < 100 && myTimer !=nil){ 
    //Invalidate timer 
    //Set myTimer to nil 
} 

如果你得到計時器來調用一個方法,然後做你想要的。

這應該工作,但我不禁覺得有一個更好的解決方案,您嘗試解決的實際問題。

1

我想這樣的事情是不可能的。不同的方法可能會解決這個問題即每次有人改變myVariable時,您可以留下某種時間戳,然後看看自上次更改以來已經過了多少時間。

2

您可以存儲將myVariable設置爲新值的時間(如果您在這個地方使用setter方法,那麼很容易)。然後啓動一秒鐘後觸發的計時器,並檢查您是否在此期間未更改該值。

儘管這是一種不尋常的模式,並且可能有更好的方法來完成您的嘗試。

+0

有什麼其他方法可以做到這一點? – objectiveccoder001 2010-07-04 18:43:06