嘿我的tableView有问题.我通过NSURLSessionDataTask从服务器获取数据,当它完成后我重新加载表视图.但我只是在触摸显示屏后才看到数据.
这是代码.
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"GET";
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
NSURLSessionDataTask * dataTast = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error == nil) {
tableViewArray = [NSJSONSerialization JSONObjectWithData:data options:1 error:nil];
[self.tableView reloadData];
[self.tableView setNeedsDisplay];
}
}];
[dataTast resume];
Run Code Online (Sandbox Code Playgroud)
我在Storyboard中设置了dataSource和delegate.
这不可能吗?
放在[self.tableView reloadData];
主线程上.所有UI都必须在主线程上更新.当你获得更新数据tableview
时调用.But时没有重新加载[self.tableView reloadData];
.请在主线程上.scroll
tableView
[self.tableView reloadData];
NSURLSessionDataTask * dataTast = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error == nil) {
tableViewArray = [NSJSONSerialization JSONObjectWithData:data options:1 error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}
}];
Run Code Online (Sandbox Code Playgroud)
也没必要打电话 [self.tableView setNeedsDisplay];
归档时间: |
|
查看次数: |
2116 次 |
最近记录: |