2009-06-13 41 views
1

我想要做的是記錄按鈕被按下的時間。所有這些時間將被存儲在一個數組中。然後,程序將運行數組並查看時間值,然後在播放期間的特定時間突出顯示按鈕狀態。事件發生的具體時間

希望這是有道理的,最好的辦法是什麼?提前致謝。

------------------更詳細------------------

的第一件事在我的腦海裏想到的是......'啊哈,時間戳',但隨後查看文檔,在時間戳頁的某個段落中的某個段落中指出以下內容:

....您應該不是用它來確定事件發生的確切時間,而是應該將其與另一個加速事件的時間戳進行比較,以確定事件之間所經過的時間......

這不是很棒..因爲我是假設它無線在回放過程中,在用戶在記錄過程中實際上按下它們的確切時間突出顯示按鈕時,會不準確。 請讓我知道我應該使用和做什麼。

回答

1

自2001年1月1日00:00:00 GMT以來,您可以使用CFAbsoluteTimeGetCurrent()獲取當前時間,以秒數表示(作爲double值,因此秒數將在那裏)。

因此,您應該在應用程序啓動時記錄CFAbsoluteTimeGetCurrent()的值,然後每次按下按鈕時記錄它的值。然後,通過從按下按鈕的時間減去應用程序啓動的時間,可以知道從應用程序啓動後按下按鈕的秒數。然後您可以稍後播放按鈕按下該時間增量並將其添加到播放開始時的時間。

+0

這聽起來不錯,可行。 我現在要使用這種方法,看看播放過程中會發生什麼,看按鈕是否在正確的時間突出顯示。他們觸發聲音,所以如果他們沒有擊敗,我會知道。感謝您的快速響應。 也有一種方法,我可以直接與您聯繫?!當我點擊某人的用戶名時,我似乎無法找到一個消息系統:|如果我想更新某人或要求某些具體內容,這將有所幫助。 – Pavan 2009-06-13 15:55:18

3

-[UIEvent timestamp]屬性將是實際發生觸摸時的最準確表示。如果使用CFAbsoluteTimeGetCurrent()或UNIX time()函數,您將獲得調用時刻函數的當前時間,而不是事件實際發生時(將在某個時間提前)。