使用带有NSURLConnection + sendAsynchronousRequest的NSURLConnecion委托

时间:2012-11-14 17:42:04

标签: objective-c ios nsurlconnection

使用

时如何使用NSURLConnection委托回调
+ (void)sendAsynchronousRequest:(NSURLRequest *)request
                      queue:(NSOperationQueue*) queue
          completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))

方法

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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:或者,也许,this会帮助你

答案 2 :(得分:0)

为了将委托方法与NSURLConnection一起使用,您需要实例化NSURLConnection变量。从那以后

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

是一种不能使用它的超类方法。