Vấn đề khá cơ bản.Dừng một performSelector: đang được thực hiện
[self performSelector:@selector(startSequence:) withObject:nil afterDelay:1.0];
Tuy nhiên, có cách nào để ngăn chặn điều này sau khi được gọi không? Cảm ơn bạn đã giúp đỡ Disco
Vấn đề khá cơ bản.Dừng một performSelector: đang được thực hiện
[self performSelector:@selector(startSequence:) withObject:nil afterDelay:1.0];
Tuy nhiên, có cách nào để ngăn chặn điều này sau khi được gọi không? Cảm ơn bạn đã giúp đỡ Disco
Bạn muốn +[NSObject cancelPreviousPerformRequestsWithTarget:]
. Nếu có nhiều yêu cầu thực hiện đang chờ, điều này sẽ hủy tất cả chúng.
Nếu bạn muốn kiểm soát tốt hơn, bạn có thể sử dụng +[NSObject cancelPreviousPerformRequestsWithTarget:selector:object:]
. Mọi thứ khớp với vị từ bị hủy; nếu bạn có nhiều yêu cầu giống hệt nhau đang đợi, không có cơ chế để hủy một yêu cầu duy nhất.
Có chắc chắn;
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(startSequence:) object:nil];
Nếu bạn gọi 'performSelector: afterDelay:' trên chủ đề chính, hãy chắc chắn rằng bạn cũng gọi 'cancelPreviousPerformRequestsWithTarget:' trên chuỗi chính. Nếu không nó sẽ không bị hủy bỏ! – malex