のデリゲートとして機能するカスタム クラスを使用して HTTP GET 要求を行うコントローラーがありますNSURLConnection
。がNSURLConnection
失敗または終了すると、カスタム クラスはコントローラーのメソッドを呼び出しNSData
、受信したデータのオブジェクトを渡します。
動作中のコントローラが動的に作成され、ナビゲーション コントローラのスタックにプッシュされるという問題が発生しています。このコントローラーは、そのviewDidLoad
メソッドで HTTP GET 要求を行います。ユーザーがナビゲーション バーの [戻る] をすばやく押すと、このコントローラーの割り当てが解除されます。HTTP GET リクエストが終了する前にこれが発生すると、結果のNSURLConnection
コールバックは解放されたオブジェクトへのメソッド呼び出しになり、EXC_BAD_ACCESS になります。
NSURLConnections
実際には既に割り当てが解除されている可能性があるコントローラーによって開始された保留中をクリーンアップするための最良の方法は何ですか?
いくつかのNSLog
ステートメントを挿入しましたが、デリゲートとして使用されているカスタム クラスが実際にはメッセージNSURLConnection
を受信していないようです。dealloc
このクラスのコントローラーのインスタンスを nil in に設定しviewDidUnload
、 release も呼び出すようにしましたが、それでもコントローラーよりも長く生きているようです。