簡體   English   中英

在iOS中實現計時器的方法

[英]Ways of implementing timer in iOS

在iOS中實現倒數計時器的更好/最好的方法有哪些?

我做了一些挖掘工作,並嘗試使用NSTimers(1秒計時器),但是有人建議這不是一個好方法,因為它不是很准確! 其他人則聲稱它浪費了電池,因為它總是一直在后台運行,直到時間流逝。 我當時想我可以創建多個計划的NSTimer,這樣它就不會失去同步。 有人建議我應該在開始時記錄實際的時間戳,並以某種方式利用內置時鍾並使用它來更新計時器的倒計時...。不過我似乎無法弄清楚該如何做。 有任何想法嗎? 您如何實施?

每當您實施計時器時,最好的選擇總是記錄您的開始時間。 然后,每當您更新界面時,只需取當前時間與開始時間之差即可。 然后,您可以使用NSTimers在特定時間觸發接口更新。

確實, NSTimer不太准確。 因此,通常您不應該簡單地將指定的時間間隔與觸發計數相乘,而應使用某種時間戳(例如,存儲的NSDate應該可以很好地滿足您的需求)。

關於電池消耗,我強烈懷疑在頻域中間隔約為1 Hz的計時器是否具有可測量的效果。 而且,如果我沒有完全弄錯,當您的應用程序進入后台時,當應用程序重新進入前台時,所有計時器都將暫停並重新安排各自的觸發日期,因此在這里也沒有害處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM