在我的ViewController中,我从mySQL服务器在线加载我的TableView数据。 当我按下加载ViewController的按钮时,在加载ViewController之前需要一些时间。
虽然我的数据是在viewDidLoad方法之后调用的..
- (void)viewDidLoad {
[super viewDidLoad];
MyArray = [[NSMutableArray alloc]initWithCapacity:10];
MyData = [NSUserDefaults standardUserDefaults];
MySqlDataBase *mySql = [[MySqlDataBase alloc]init];
MyArray = [mySql doQueryGetArray:@"SELECT * FROM member" ForDataBaseWithName:@"Estifta"];
NSLog(@"%@",[[MyArray objectAtIndex:0]objectForKey:@"text"]);
[_myTabeView reloadData];
}
答案 0 :(得分:0)
viewDidLoad
,但在视图显示在屏幕上之前。 viewDidLoad中的代码在mainThread(UIThread)上运行,因此减慢了屏幕上视图的显示速度。
作为解决方案,您可以在后台队列上调度长时间运行的部分(使用dispatch_async),然后在主线程上重新加载tableview。
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
MySqlDataBase *mySql = [[MySqlDataBase alloc]init];
MyArray = [mySql doQueryGetArray:@"SELECT * FROM member" ForDataBaseWithName:@"Estifta"];
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf.myTabeView reloadData];
});
});