Iphone NSURLConnection是否阻止主线程?

Iphone NSURLConnection是否阻止主线程?,iphone,multithreading,nsurlconnection,Iphone,Multithreading,Nsurlconnection,我正在iPhone应用程序中使用NSURLConnection,将initWithRequest:发送到我的NSURLConnection实例后,界面似乎变慢了。我不确定这是因为我的处理代码处理响应花费了很长时间,还是因为NSURLConnection阻塞了主线程 有人能确认NSURLConnection将创建连接并在单独的线程上等待数据,然后在主线程上调用其委托方法吗 谢谢 如果您遵循Apple的示例,则调用将在不同于主线程的线程中处理。NSURLConnection支持两种操作模式:异步和同

我正在iPhone应用程序中使用
NSURLConnection
,将
initWithRequest:
发送到我的
NSURLConnection
实例后,界面似乎变慢了。我不确定这是因为我的处理代码处理响应花费了很长时间,还是因为
NSURLConnection
阻塞了主线程

有人能确认
NSURLConnection
将创建连接并在单独的线程上等待数据,然后在主线程上调用其委托方法吗


谢谢

如果您遵循Apple的示例,则调用将在不同于主线程的线程中处理。

NSURLConnection支持两种操作模式:异步和同步。两者都不使用单独的线程。它们都只使用一个线程,即运行它们的线程

在同步模式下,NSURLConnection将阻止运行它的任何线程。异步模式使用运行循环的行为(从开发人员的角度来看)类似于后台线程,但开销较低且没有任何线程安全问题。如果使用异步模式,则希望在主线程中运行它。它不会阻挡任何东西


如果您的接口速度变慢,这与同步使用NSURLConnection不一致,这将导致您的接口完全停止,直到请求完成。

您需要小心最后一句话!例如,如果您有5000个小请求,用户体验可能是接口速度变慢(因为有很多小停止),我最近使用NSURLConnection异步创建了一个线程,一个内部线程。这就是异步的定义。