我按照下面的代码在我的应用程序中建立https连接,以便在我的iphone(iOS4)应用程序中以xml格式获取一些数据。
单个连接的一切正常。但是,如果我同时尝试2个(或更多)连接(每个连接在单独的线程中),并且如果正在提供第一个连接,则第二个连接将被丢弃。
第二个连接永远不会排队。它被简单地丢弃了。只提供第一个。
可能是什么问题?我的要求是同时创建多个(至少2个)连接。
此外,如果可能,请分享示例代码或链接或示例。 感谢
答案 0 :(得分:0)
在单独的线程中运行NSURLConnection并不是一项简单的任务。如果您只是在单独的线程中执行NSURLConnection,则无法处理委托方法,因为您的线程在代码实际执行之前已完成。
初始化NSURLConnection对象后,实际需要 把类放在一个无限循环中以确保该类仍然是 命中方法被命中时生效。
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:urlReq delegate:self];
while(!finished) {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
- (void) connectionDidFinishLoading:(NSURLConnection *)connection
{
finished = TRUE;
}
请参阅此文章 - NSURLConnection in its own thread