0

我正在使用 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以便能够显示它,但由于某种原因,它并没有让我觉得它是一个好的解决方案。

如何向用户显示请求的数据为空或不可用?

4

1 回答 1

0

取决于您希望用户如何处理您提供的信息。如果您只是想通知他们有错误(并且没有追索权),那么在导航栏上设置提示可能就足够了。如果有用户可以执行的操作,那么带有重试按钮(或其他)的 UIAlert 可能是合适的。

于 2012-10-15T11:20:00.597 回答