我正在使用 NSURLConnection 和 NSHTTPURLResponse 从 API 获取数据,但是如果没有返回数据,我不确定显示错误的最佳(或好的)方法。就像现在一样,我只是什么都不显示。基本上只是将 UITableView 数据源设置为零。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[NSError alloc] init];
NSURLRequest *seriesReq = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://url/"]];
NSData *responseData = [NSURLConnection sendSynchronousRequest:seriesReq returningResponse:&urlResponse error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
if([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) {
NSError *error;
seriesJson = [NSJSONSerialization
JSONObjectWithData:responseData
options:NSJSONReadingMutableContainers
error:&error];
[_seriesTableView reloadData];
}
else {
seriesJson = nil;
}
});
});
我在想也许只是用一个虚拟数据集填充 seriesJson,然后在内部检查它- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
以便能够显示它,但由于某种原因,它并没有让我觉得它是一个好的解决方案。
如何向用户显示请求的数据为空或不可用?