ios TableView reloadData

Gab*_*Raz 0 objective-c ios

嘿我的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.

这不可能吗?

cod*_*ter 6

放在[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];