Co to jest właściwy sposób? Dokumentacja NSTimer
mówi tak:Czy bezpieczne jest planowanie i unieważnianie NSTimerów w kolejce szeregowej GCD?
Rozważania specjalne
Musisz wysłać tę wiadomość z wątku na który został zainstalowany zegar. Jeśli wyślesz tę wiadomość z innego wątku , źródło wejściowe skojarzone z zegarem nie może zostać usunięte z pętli uruchamiania, , co może uniemożliwić prawidłowe opuszczenie wątku przez .
Od GCD
nie zapewniam was, że seryjny kolejka będzie zawsze uruchamiane bloki w tym samym wątku, co jest właściwym sposobem, aby zaplanować i unieważnia się NSTimer
w tym samym wątku?
EDIT:
Po Radzi poniższa odpowiedź, stworzyłem MSWeakTimer
(https://github.com/mindsnacks/MSWeakTimer), który jest wdrożenie niestandardowych zegar używając GCD
który może być używany z dowolnym kolejce.
+1 dla MSWeakTimer ... Rozwiązał nasze straszne problemy z pamięcią! – jowie