在tabBar上加载核心数据的替代方法didSelectItem?还是加快速度?

时间:2012-04-16 02:21:08

标签: iphone objective-c core-data ios5 xcode4.2

我在didSelectItem上加载我的TableView的核心数据,但是这使得tabbar感觉迟钝,它不会更新,直到新数据加载。解决这个问题的好方法是什么?我可以在数据加载之前更新标签栏和空白的表格视图,还是可以以某种方式显示活动指示符?

这是我目前的代码

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

2 个答案:

答案 0 :(得分:0)

您可以使用GCD在后台线程中进行提取,并在数据到来时填充tableview。这是一篇关于在后台线程中使用Core Data的好文章。

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

真的,如果你用fetchresultscontroller捕获数据,你需要做的就是在另一个线程中进行获取。然后它将自动捕获添加新行,因为fetch继续。

答案 1 :(得分:0)

我最终创建了一个NSMutableArray来在应用程序启动时存储数据,因此标签更改得更快,因为它不需要获取核心数据。

相关问题