1

使用时如何使用 NSURLConnection 委托回调

+ (void)sendAsynchronousRequest:(NSURLRequest *)request
                      queue:(NSOperationQueue*) queue
          completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))

方法?

我希望能够访问处理完成块的队列上的缓存委托回调。

4

3 回答 3

3

你没有。您需要使用 NSURLConnection 方法 initWithRequest:delegate: 而不是 sendAsynchronousRequest 来使用委托回调方法。

于 2012-11-14T18:17:39.467 回答
1

像这样使用它

NSURL *url = [NSURL URLWithString:kURL];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL      :   url
                                                        cachePolicy     :   NSURLRequestReloadIgnoringCacheData
                                                        timeoutInterval :   30];
NSString *params = [NSString stringWithFormat:@"param=%d",digits];

[request setHTTPMethod:@"POST"];
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];

[NSURLConnection sendAsynchronousRequest:request 
                                   queue:[NSOperationQueue mainQueue]  
                       completionHandler:^(NSURLResponse *response, NSData *taxiData, NSError *error) {

 //Snippet - Do sth. (block)

}

希望这有帮助。

编辑:对不起,我没有清楚地阅读你的问题。+sendAsynchronousRequest 不需要委托方法。

EDIT2:或者,也许,会帮助你

于 2012-11-15T06:30:01.257 回答
0

为了使用委托方法,NSURLConnection您需要实例化一个NSURLConnection变量。自从

+ (void)sendAsynchronousRequest:(NSURLRequest *)request
                  queue:(NSOperationQueue*) queue
      completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))

是一个超类方法,你不能使用它。

于 2012-11-14T18:59:16.887 回答