2017-11-02 13 views
0

これが私の最初の質問です。私はSwift 4を学ぼうとしています。私はStopwatchのチュートリアルとサンプルをいくつか見つけ、独自のバージョンを構築しました。Swift 4でTimerの火災をどのくらい正確に(または頻繁に)行うことができますか

scheduledTimerイベントの精度/頻度はどのくらいですか?私が見つけた例では、このようなコードを有している:

timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(UpdateTimer), userInfo: nil, repeats: true)

UpdateTimer機能は、単にカウンタに.1を添加し、ラベルのテキストプロパティにその値を入れました。

間隔を0.1より小さくすると、表示される「時間」が正確ではないことに気付きました。スケジュールされたTimerが0.1秒より速く正確に発射できないように見えます。検証するために、開始時刻と終了時刻の日付変数をいくつか実装し、その差を計算しました。スケジュールされたタイマーの頻度を.001に変更すると、UpdateTimerで更新された 'カウント'値と、開始/終了時刻のデルタとの間に大きな違いがあります。

このチュートリアルは正確なストップウォッチの良い例ではありませんが、アップルのマニュアルでは0.1ミリ秒で起動できると思っていたのでスケジュールされたTimerがどれほど頻繁に起動するかを調べようとしていました: "タイマーの起動間の秒数。tiが0.0以下の場合、このメソッドは負ではない0.1ミリ秒の値を選択します。

ありがとうございました。

答えて

0

ここでさらに検索した後、私は最後に、タイマーがストップウォッチのような機能に対して十分に信頼性がないと述べたスレッドを見つけました。

+0

時間をカウントするためにタイマーを使用しないでください。しかし、実行中のストップウオッチの表示を更新するためにタイマーを使用することはできますが、実際のタイミングは、保存された開始時刻とタイマー機能が実行される現在時刻の差を計算することです。 – vacawama

関連する問題