2012-04-19 23 views
1

リフレッシュのUITableView原因EXC_BAD_ACCESSエラー

I(ASCHTTPRequestライブラリとNSOperationQueueメソッドを使用して)私はのNewsItemを含む配列を持ち、各項目は非同期にウェブからその画像を要求する責任があります私のrssフィーダーにリフレッシュ機能を追加したいと思います。私の試みは、新しい配列をもう一度作り直すことです(そして古いNewsItemをすべて取り除きます)。

ただし、すべてのNewsItemが画像を取得する前に内容を更新すると、EXC_BAD_ACCESSエラーが発生し、クラッシュする可能性があります。 (古いアイテムはデアロックで、デリゲートを介してこれらのアイテムへのコールバックがあるため)

この問題をより良い方法で解決するにはどうすればよいですか?それぞれのアイテムがすでにリクエストされているかどうかをチェックせずに、古いアイテムをすべて削除することはできないということですか?

申し訳ありませんが私の質問を明確に記述することはできません。あなたの助けを楽しみにしていますありがとう!

答えて

1

現在のすべてのHTTPリクエストを追跡する必要があります。リフレッシュしたいときは、すべてのリクエストをキャンセルして、新しいアレイを作り直してください。このようにして、非同期要求は解放されたイメージを更新しようとしません。

+1

リクエストをキャンセルするときのキーは、デリゲートコールバックをnilに設定することです。 – Joe

+0

ありがとうございます。最後に、リロードする前にキュー内のすべての非同期要求をキャンセルするだけです。私はアプリケーション全体の単一のキューを持っている、と私は多分それは、キャンセルが他のコントローラの要求に影響しないように各コントローラの複数の操作キューを持つことをお勧めします..私はどのように 'スレッド'しかし、iOSで。 – cppcho

関連する問題