Cách thích hợp để thực hiện việc này là gì? Các tài liệu NSTimer
nói điều này:Có an toàn để lên lịch và vô hiệu hóa NSTimers trên hàng đợi nối tiếp GCD không?
cân nhắc đặc biệt
Bạn phải gửi thông điệp này từ các chủ đề trên mà hẹn giờ đã được cài đặt. Nếu bạn gửi tin nhắn này từ một luồng khác , nguồn đầu vào được kết hợp với bộ hẹn giờ có thể không bị xóa khỏi vòng lặp chạy của nó, điều này có thể ngăn luồng thoát khỏi trạng thái đúng cách.
Kể từ GCD
không đảm bảo với bạn rằng một hàng đợi nối tiếp sẽ luôn luôn chạy khối trên cùng một sợi, đúng cách là những gì để đảm bảo rằng bạn sắp xếp và làm mất hiệu lực một NSTimer
trên cùng một sợi?
EDIT:
Sau khi tư vấn cho các câu trả lời dưới đây, tôi tạo MSWeakTimer
(https://github.com/mindsnacks/MSWeakTimer) mà là một phong tục hẹn giờ thực hiện sử dụng GCD
có thể được sử dụng từ bất kỳ hàng đợi.
+1 cho MSWeakTimer ... Đã giải quyết được vấn đề về bộ nhớ khủng khiếp của chúng tôi! – jowie