在我的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'为空,而我希望将'error'(来自URLRequest类)返回给我的View Controller,以便我可以显示错误消息给用户。
我该怎么做?
谢谢, 的Corrado
答案 0 :(得分:3)
我不会重载您的data
对象以用于数据和错误。为什么不在URLRequest类中使用更像这样的方法:
- (void)startWithCompletion:^(URLRequest *request, NSData *data, NSError *error)
然后,您可以通过[NSURLConnection :didFailWithError:]
方法将错误传回给来电者。