区分委托中的NSURLConnection对象
问题描述:
我有两个请求,一个接一个地开始。像这样的起始请求区分委托中的NSURLConnection对象
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{}
不想为此保留任何额外的类变量。
答
很简单:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if (connection == connection1)
{
//It's for connection1.
}
else if (connection == connection2)
{
//It's for connection2.
}
}
你可以通过这个美丽的SO问题:Managing multiple asynchronous NSURLConnection connections
答
把你NSURLConnection
对象的.h文件,并在您的委托方法检查为马库斯建议。
或
子类的NSURLConnection
,然后你可以tag
属性添加到连接类,同时创造,在您委托方法检查相应的标记。你可以找到working tutorial here。
检查回调方法中的'connection'参数是否等于代码中的'connection'或'connection1'变量。 – Markus 2013-05-06 07:17:08