【问题标题】:NSURL - getting error messageNSURL - 收到错误信息
【发布时间】:2013-10-30 23:52:27
【问题描述】:

在我的 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 类)返回到我的视图控制器,以便我可以显示错误给用户的消息。

我该怎么做?

谢谢, 科拉多

【问题讨论】:

    标签: ios objective-c nsurlrequest


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。我终于能够实施您的解决方案,而且效果很好!
    • 是的,我认为您可以只使用指向数据和错误的常规指针,因为它们被传递到完成块。
    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2016-03-25
    • 2018-09-22
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多