これが私の最初の質問です。私は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ミリ秒の値を選択します。
ありがとうございました。
時間をカウントするためにタイマーを使用しないでください。しかし、実行中のストップウオッチの表示を更新するためにタイマーを使用することはできますが、実際のタイミングは、保存された開始時刻とタイマー機能が実行される現在時刻の差を計算することです。 – vacawama