2

在我的 ViewController 中,我使用块发送 URL 请求:

[urlRequest startWithCompletion:^(URLRequest *request, NSData *data, BOOL success) {
    if (success)
    {
        do something
    }
    else 
    {
         NSString *errorMessage = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
         NSLog(@"error  %@", errorMessage);
    }
}];

在 URLRequest 类中,我有 didFailWithError 方法:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{
       completion(self, webData, NO);
       NSLog(@"Connection failed! Error - %@",
       [error localizedDescription]);
}

如果发生通信错误,“webData”为空,因此 ViewController 中的“errorMessage”也为空,而我希望将“错误”(来自 URLRequest 类)返回到我的视图控制器,以便我可以将错误消息显示给用户。

我怎样才能做到这一点 ?

谢谢, 科拉多

4

1 回答 1

3

我不会重载您的data对象以同时用于数据和错误。你为什么不在你的 URLRequest 类中让你的方法更像这样:

- (void)startWithCompletion:^(URLRequest *request, NSData *data, NSError *error)

[NSURLConnection :didFailWithError:]然后,您可以将错误从您的方法传回给调用者。

于 2013-10-31T00:02:50.230 回答