alguém sabe se é possível cancelar eventos do seletor já enfileirados da pilha de eventos ou da pilha do cronômetro (ou de qualquer mecanismo utilizado pela API) quando você chama performSelector:withObject:afterDelay
?
Eu estava usando essa pilha de eventos para alterar os atributos de uma imagem dentro de uma guia TabBar e às vezes enfileirava até 10 segundos de alterações em um loop executado rapidamente ... talvez 5 milissegundos ou mais.
o problema surge se o usuário alternar as guias ... digamos, tenho as alterações de imagem enfileiradas para uma imagem que é exibida assim que a guia nº 4 é ativada e, em seguida, o usuário muda rapidamente para a guia nº 3 e depois volta para a guia # 4 ... isso iria então re-enfileirar mais 10 segundos no valor de alterações enquanto a fila antiga ainda estava tocando, provavelmente cerca de 2 ou 3 segundos na fila se trocada rápido o suficiente ... mas mesmo chegando a 5 segundos para o fluxo era um problema.
então eu precisava de alguma forma de cancelar a pilha antiga de alterações antes de colocar uma nova pilha ...
Estou escrevendo esta consulta no tempo passado porque já encontrei uma solução alternativa para esse problema adicionando um filtro de eventos com olhos de falcão na função de reprodução. no entanto, ainda estou curioso para saber se o cancelamento do evento é possível, porque tenho a sensação de que esse conhecimento será útil no futuro. obrigado por qualquer ajuda prestada :)