4

如果我使用NSURLConnectionwith sendAsynchronousRequest:queue:completionHandler:,我是否需要在完成处理程序中采取任何特别的预防措施?具体来说,是否通过NSURLConnection与使用相同/相似的方式直接异步发送dispatch_async,因为完成块需要返回到主线程才能与 UI 交互?

例如:在dispatch_async用于与 UI 交互(可能是错误的词)之后,应用程序必须使用performSelectorOnMainThread.

这完全是一个考虑因素sendAsynchronousRequest:queue:completionHandler:吗?

注意:我发现了类似的问题,但不是这个。例如,在NSURLConnection 是否阻塞了主线程?indiekiduk 特别声明它是一个新线程,尽管是一个内部线程——我认为这是有缺陷的,因为我认为它只是在运行循环的末尾——但我仍在学习并且可能/可能是错误的。

4

2 回答 2

5

NSURLConnection队列参数的状态文档sendAsynchronousRequest:queue:completionHandler:

queue
当请求完成或>失败时,处理程序块被分派到的操作队列。

该块将在设置传入队列的任何线程上执行。

于 2012-11-18T12:48:38.373 回答
0

NSURLConnection sendAsync 安排在线程的 RunLoop 上,它在 AFAIK 上,因此在您启动它的线程中调用该块

于 2012-11-18T12:45:49.167 回答