2

NSNotificationQueuesで合体通知を使用して時間範囲を制御する方法はありますか?NSNotificationsを融合する

私は合体したいと思います。次の秒のために、しかし、私は利用可能なオプションを理解しているので、すぐにまたは次回のループ実行または 'アイドル時'のどちらかになります。

より長い時間範囲で合体するか?

私は基本的に小さな時間範囲ですべてのユーザーイベント(ピンチトゥーズームなど)を収集し、ユーザーが明らかにズームなどを停止した後に高価な操作を開始する方法を探しています。

答えて

0

最初の通知が到着したときにNSTimerをスケジュールすることができます。次の通知が来たら、タイマーインスタンス変数を確認します。それがnilでなければ、通知を無視してください。それ以外の場合は、新しいタイマーを開始します。

タイマーが起動すると、タイマーインスタンス変数を消去し、高価な操作を開始します。

さらに簡単な方法は、performSelector:afterDelay:cancelPreviousPerformRequestsWithTarget:selector:object:です。しかし、効果は同じではありません。通知が届くたびに、高価な操作がさらに遅れることになります。通知が設定した遅延より速くなると、高価な操作は決して実行されません。

+0

100%カスタム実装について説明しています。確かに、これを行う方法の1つですが、組み込みの合体通知メカニズムの使用には関係ありません。 – ATV

+0

はい。組み込みコアレーシングは、「ru​​nloopの終了」または「アイドル時」以外のものを提供しているとは思えません。ほとんどの場合、これで十分です。高価な操作を毎秒1回だけトリガする場合は、タイマーを使用して高価な操作を実装する必要があります。 –