如果我将NSURLConnection
与sendAsynchronousRequest:queue:completionHandler:
一起使用,我是否需要在完成处理程序中采取任何特定的预防措施?具体来说,是通过NSURLConnection
直接异步发送与使用dispatch_async
相同/相似,因为完成块需要返回主线程与UI交互?
例如:在使用dispatch_async
与UI进行互动(可能是错误的词)后,应用必须使用performSelectorOnMainThread
。
这是sendAsynchronousRequest:queue:completionHandler:
的一个考虑因素吗?
注意:我发现了类似的问题,但没有具体说明。例如,在Does NSURLConnection block the main thread? indiekiduk明确指出它是一个新的线程,虽然是一个内部的 - 我认为这是有缺陷的,因为我认为它只是在运行循环的结束 - 但我仍在学习和可能/可能是错误的。
答案 0 :(得分:5)
NSURLConnection
sendAsynchronousRequest:queue:completionHandler:
个州的文档
队列
当请求完成或者> 1时,调度处理程序块的操作队列。失败。
该块将在传入的队列中设置的任何线程上执行。
答案 1 :(得分:0)
NSURLConnection sendAsync安排在AFAIK上的线程的RunLoop上 所以在你启动它的线程中调用该块