呼び出し時に、すでにスタックされているセレクターイベントをイベントスタックまたはタイマースタック(またはAPIで使用されるメカニズム)からキャンセルできるかどうか誰かが知っていますperformSelector:withObject:afterDelay
か?
私はこのイベントスタックを使用して、TabBarタブ内の画像の属性を変更しましたが、1回のループですばやく実行できるように、最大10秒の変更をキューに入れる場合がありました。
ユーザーがタブを切り替えると問題が発生します...たとえば、タブ#4が有効になるとすぐに表示される画像の画像変更をキューに入れ、ユーザーがすぐにタブ#3に切り替えてから、タブに戻ると言う#4 ...これにより、古いキューがまだ再生されている間に、10秒に相当する変更が再度キューに入れられます。十分に速く切り替えられた場合、おそらく2〜3秒でキューに入れられますが、5秒で到着します。ストリームは問題でした。
新しいスタックを配置する前に、変更の古いスタックをキャンセルする方法が必要でした...
私はこのクエリを過去形で書いています。なぜなら、再生機能にタカ目イベントフィルターを追加することで、この問題の代替ソリューションをすでに思いついたからです。でも、イベントのキャンセルが可能かどうかはまだ気になりますが、そういう知識は今後重宝すると思います。提供された支援に感謝します:)