0

didSelectItem で TableView のコア データを読み込んでいますが、これにより、新しいデータが読み込まれるまで更新されないタブバーの動作が遅くなります。この問題を回避する良い方法は何ですか? データがロードされる前にタブバーと空白のテーブルビューを更新できますか、それとも何らかの方法でアクティビティ インジケーターを表示できますか?

これは私の現在のコードです

- (void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSInteger index = [item tag];
NSMutableArray *schedule = [dataHandler fetchEntriesForCourse:[[_Courses objectAtIndex:index] valueForKey:@"CourseCode"]];
tableView.schedule = schedule;
}
4

2 に答える 2

0

アプリケーションの起動時にデータを格納するために NSMutableArray を作成することになったので、コアデータを取得する必要がなかったため、タブの変更が高速になりました。

于 2012-05-07T11:41:24.363 に答える
0

GCDを使用してバックグラウンドスレッドでフェッチを行い、データが来るとテーブルビューにデータを入力できます。バックグラウンド スレッドで Core Data を操作することに関する優れた記事を次に示します。

http://www.cimgf.com/2011/05/04/core-data-and-threads-without-the-headache/

実際、fetchresultscontroller でデータをキャッチする場合、別のスレッドでフェッチを行うだけで済みます。その後、フェッチが進行するにつれて、新しい行が自動的に追加されます。

于 2012-04-16T04:03:01.117 に答える