没有提供多个连接,iphone,使用http / https连接

时间:2011-11-28 15:34:12

标签: iphone ios4 https connection

我按照下面的代码在我的应用程序中建立https连接,以便在我的iphone(iOS4)应用程序中以xml格式获取一些数据。

  1. 使用NSURLConnection创建连接
  2. connection:didReceiveResponse:implementation
  3. 连接:didReceiveData
  4. connectionDidFailWithError
  5. connectionDidFinishLoading
  6. 我提到了以下建立联系: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

    单个连接的一切正常。但是,如果我同时尝试2个(或更多)连接(每个连接在单独的线程中),并且如果正在提供第一个连接,则第二个连接将被丢弃。

    第二个连接永远不会排队。它被简单地丢弃了。只提供第一个。

    可能是什么问题?我的要求是同时创建多个(至少2个)连接。

    此外,如果可能,请分享示例代码或链接或示例。 感谢

1 个答案:

答案 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