0

私は、dispatch_async とブロックを使用して、3 秒ごとにサーバー データを取得しています。ビューが消えるか、ユーザーがプログラムをシャットダウンする方法は何ですか?

非同期ブロックが時々チェックするのはブール値のフラグでしょうか? その場合、非同期ブロックがスリープしている間にビューが終了するとどうなりますか?

4

1 に答える 1

4

ディスパッチ コールを簡単にキャンセルすることはできないため、代わりにに移動することをお勧めしますNSOperationWWDC 2012、 Session 211 - Building Concurrent User Interfaces on iOSからの非常に関連性の高いビデオがあり、あなたが説明した種類の問題を正確にカバーしています。絶対に見ることをお勧めします。

基本的なアプローチはNSBlockOperation、プロパティ自体をチェックして、-isCancelledキャンセルされた場合に早期に戻ることができる を作成することです。その後、 で操作をキャンセルできますviewDidDisappear

別のアプローチは、NSTimer簡単に無効化/キャンセルできるものを使用することです。これは、コードが何を行っているかの説明を考えると、実際には最も簡単な解決策かもしれません。

于 2012-06-27T15:49:24.530 に答える