これは正しい方法はありますか? NSTimer
ドキュメントは、これは言う:GCDシリアルキューのNSTimersをスケジュールして無効にするのは安全ですか?
特別な考慮事項
あなたは、タイマーがインストールされた 上のスレッドからこのメッセージを送信する必要があります。別の スレッドからこのメッセージを送信すると、タイマーに関連付けられた入力ソースが実行ループから削除されないため、 スレッドが正しく終了しない可能性があります。
GCD
シリアルキューが常に同じスレッドでブロックを実行することを保証するものではありませんので、あなたが同じスレッドでNSTimer
をスケジュールし、無効にすることを確保するための正しい方法は何ですか?
EDIT:以下の答えのアドバイスに従い
、私はどのキューから使用することができますGCD
を使用してカスタムタイマーの実装ですMSWeakTimer
(https://github.com/mindsnacks/MSWeakTimer)を作成しました。
+1 MSWeakTimer ...私たちのひどい記憶の問題を解決しました! – jowie