检查哪个请求来自NSURLConnection委托

adi*_*dit 0 iphone objective-c nsurlconnection ipad ios

检查委托方法中哪个请求的最佳方法是什么:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{

}
Run Code Online (Sandbox Code Playgroud)

现在我有一个NSURLConnection,我在发出请求之前设置为NSURLConnection,我在里面didReceiveResponse做:

if (self.tempConnection == connection)
Run Code Online (Sandbox Code Playgroud)

但是有可能这对竞争条件不起作用.有一个更好的方法吗?

dan*_*anh 5

在OS5中有更好的方法.忘记所有那些麻烦的委托消息.让连接为您构建数据,并将完成的代码与您的起始代码保持一致:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.site.com"]];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
    NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
    NSLog(@"got response %d, data = %@, error = %@", [httpResponse statusCode], data, error);
}];
Run Code Online (Sandbox Code Playgroud)