1

誰かが UITableView 内の行に触れるたびに、一連の非同期 NSURLConnections を開始して、データをダウンロードし、そのデータを解析して Core Data に保存します。

問題は、これを行うと、データのダウンロード中に UI が応答しますが、解析と保存が開始されるとすぐに UI が応答しなくなることです。

NSURLConnection は、NSURLConnection プロトコルを実装するクラス内にラップされ、NSURLConnection が didLoadResource を起動すると、解析と保存を処理する DataAdapter クラスが開始されます。それがUIブロックの原因だと思います。

誰もこれを以前に扱ったことがありますか?私のオプションは何ですか?DataAdapter を NSOperation に入れますか?

4

1 に答える 1

3

デフォルトでは、CoreDataはUIで使用されるのと同じスレッドであるメインスレッドで動作します。別のスレッドで別のコンテキストを作成するか、(より簡単に)ダウンロードが完了するまで待ってから情報をCoreDataに移動する必要があります。現在、Core Dataは、一部のデータのダウンロードが完了するのを待っている間、メインスレッドとインターフェイスをフリーズしています。

CoreDataを使用したマルチスレッドを参照してください。

于 2010-04-21T16:53:25.973 に答える