我正在使用NSURLConnection和NSHTTPURLResponse从API获取数据,但如果没有返回数据,我不确定显示错误的最佳(或好)方法。就像现在一样,我只是没有展示任何东西。基本上只是将UITableView数据源设置为nil。
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
内部是否能够显示它,但由于某种原因它不会让我成为一个好的解决方案。
如何向用户显示请求的数据为空或不可用?
答案 0 :(得分:0)
取决于您希望用户对您提供的信息做些什么。如果您只是想通知他们存在错误(并且没有追索权),那么在导航栏上设置提示可能就足够了。如果用户可以采取行动,那么带有重试按钮(或其他)的UIAlert可能是合适的。