2012-01-19 12 views
0

fetchedResultsControllerを使用すると、iOS5からアプリがフリーズし始めました。私はシミュレータを終了した後にデバッガの結果を添付しました。iOS5コアデータを取得するとアプリがフリーズする

enter image description here

すべてのヘルプは理解されるであろう。あなたはtableviewsを更新するperformSelectorInBackground:を使用しているコメントで言う

おかげ

+0

いくつのスレッドを使用しますか?フェッチする場所はどこですか?コードを貼り付けます。デッドロックを作成したようです。 –

+0

私はmaster tableviewと他の3つのテーブルビューを使用しています。リストの選択がマスターテーブルビューで変更されたとき、私はperformselectorinbackgroundメソッドを使って3つのテーブルビューを更新しています(基本的にはfetchedresultscontrollerをnilにして、それらのメソッドでフェッチをやり直しています)。アプリは、NSInteger totalCount = [managedObjectContext countForFetchRequest:fetchRequest error:&error](fetchedresultscontrollerブロック内)という行でフリーズします.AppがiOS5より前に正常に動作していました。 – Confused

答えて

4

。これは正しくない、UIに影響を与えるすべてのコードは、メインスレッドで実行する必要があります。

さらに(問題の原因と思われる)スレッド間でMOCを再使用しないでください。各スレッドはそれ自身のMOCを持っていなければならず、それは同じNSPersistentStoreCoordinatorを使用することができます。

Apple's guide on this topicをお読みください。

関連する問題