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 クラスから) を View Controller に返して、エラー メッセージをユーザー。

どうやってやるの ?

ありがとう、コラード

4

1 に答える 1

3

dataデータとエラーの両方に使用するオブジェクトをオーバーロードしません。URLRequest クラスのメソッドを次のようにしてみませんか。

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

次に、メソッドから呼び出し元にエラーを返すことができます[NSURLConnection :didFailWithError:]

于 2013-10-31T00:02:50.230 に答える