myViewControllerをナビゲーションスタックにプッシュした後、myViewControllerのいくつかのフィールドに入力するいくつかのデータに対して単純なネットワーク要求を行います。このリクエストでメインスレッドをブロックしたくないので、を使用して作成しperformSelectorInBackground
ます。リクエストが戻ってきたらperformSelectorOnMainThread
、UIを更新するために使用します。
このアプローチは、リクエストを破棄することを除いて正常に機能します。ユーザーがViewControllerをプッシュすると、ネットワークリクエストが開始され、ユーザーはすぐにView Controllerをポップして、アプリで他のことを実行するとします。この場合、ネットワーク要求は存在しないオブジェクトに戻ります。このケースをどのように処理できますか?
各リクエストにデリゲートがあり、レスポンスを処理する、より堅牢なネットワーク層を検討しました。このアーキテクチャを使用すると、View Controllerがポップされたときにデリゲートをゼロにすることができるため、要求が何も返されないという問題を回避できます。これが最善の方法かどうかはわかりません。