ユーザーがUIView.
にUIEvent渡された にtouchesBegan:は、秒単位のタイミング データしかありません。これは、十分に正確ではありません。
したがって、論理的には、次のステップはtouchesBegan:usingmach_absolute_time()などと呼ばれる時間を記録することのようです。このアプローチはほとんどの場合うまく機能しますが、システムが非常に集中的な作業を行っている場合 (特にメイン スレッドで UI 作業を行っている場合)、touchesBeganループ内で少し押し戻されたように見えます。それでも起動しますが、遅くなります。
シグナル チェーンのある時点で使用して、より正確なデータを取得できる低レベルのソリューションがあることを期待しています (少なくとも秒単位ではなくミリ秒単位で)。
もちろん、これらの遅延を回避するために、UI スレッドをできるだけ効率的に実行し続けるようにしますが、特に古いデバイスでは、タイミングの小さな問題は避けられないようです。