我在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;
}
答案 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来在应用程序启动时存储数据,因此标签更改得更快,因为它不需要获取核心数据。