2011-09-13 4 views
1

NSFetchedResultsControllerを介してUITableViewを管理しましたが、NSFetchedResultsControllerがデータを読み込んでいる間、すべてのUIがブロックされました(タップ、スクロールなどは何もできません)。これを解決する解決策はありますか?ありがとう!!!NSFetchedResultsControllerがデータをロードしている間にUIがブロックされました

+0

バッチサイズを小さくすることができます – Robin

+0

バッチサイズは20ですが、それは高いですか? –

答えて

1

アプリケーションのユーザーフレンドリーを行う際に覚えておくことが重要であることの一つがある:あなたがメイン スレッド上の任意の集中的、非UI関連の計算をしている場合

、あなたが何かをやっています違う!UIメインスレッドを作る

UIがフリーズしないことを確認します、またはあなたはそれを説明するように、「ブロック」を取得します。したがって、これが発生しないように、NSFetchedResultsControllerは別のスレッド上にある必要があります。

NSOperationは、あなたが説明している問題のために行く方法です。 Hereは、同様のシナリオを説明するチュートリアルとサンプルコード、およびそれを修正する方法です。

希望すること!

+0

それは他の問題の原因と思われます。 –

+0

インターネットからデータをダウンロードし(必要な場合)、コアデータからUITableViewにデータをロードします。 –

+0

素晴らしい!だから、すべての機能をメソッドに入れて、そのメソッドを 'NSOperation'にラップし、それが完了したら' reloadData'を呼び出して、 'UI'がロックされないようにするだけです! – msgambel

関連する問題