5

我有两个请求一个接一个地开始。像这样开始请求

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
NSURLConnection * connection = [[NSURLConnection alloc]
                                initWithRequest:request
                                delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
                      forMode:NSDefaultRunLoopMode];
[connection start];

和另一个像这样开始的请求。

NSURL *url1 = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.apple.com"]];
NSURLRequest *request1 = [NSURLRequest requestWithURL:url1 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
NSURLConnection *connection1 = [[NSURLConnection alloc] initWithRequest:request1 delegate:self];
[connection1 release];

如何在委托方法中区分这两者?

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{}

不想为此保留任何额外的类变量。

4

2 回答 2

4

这很简单 :

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
     if (connection == connection1)
     {
         //It's for connection1.
     }
     else if (connection == connection2)
     {
         //It's for connection2.
     }
}

您可以通过这个美丽的 SO 问题:管理多个异步 NSURLConnection 连接

于 2013-05-06T07:23:50.520 回答
2

NSURLConnection按照 Markus 的建议,将您的对象放入 .h 文件中并签入您的委托方法。

或者

将您的子类化NSURLConnection,然后您可以tag在创建时将属性添加到连接类,在您的委托方法中检查适当的标记。你可以在这里找到工作教程

于 2013-05-06T07:25:41.297 回答