2012-11-18 17 views
4

如果我使用NSURLConnectionsendAsynchronousRequest:queue:completionHandler:,是否需要在完成處理程序中採取任何特殊的預防措施?具體來說,直接通過NSURLConnection異步直接發送與使用dispatch_async相同/相似的內容,因爲完成塊需要返回到主線程以與UI進行交互?NSURLConnection和sendAsynchronousRequest:queue:completionHandler: - 完成塊是否在主線程中運行

例如:使用dispatch_async與UI進行交互(可能是錯誤的詞)後,應用程序必須使用performSelectorOnMainThread

難道這就是sendAsynchronousRequest:queue:completionHandler:

注意:我發現了類似的問題,但沒有具體說明。例如在Does NSURLConnection block the main thread? indiekiduk明確指出這是一個新線程,儘管是內部線程 - 我認爲這是一個缺陷,因爲我認爲它只是在運行循環結束時 - 但我仍在學習,可能/可能錯誤。

回答

5

的文檔隊列參數NSURLConnectionsendAsynchronousRequest:queue:completionHandler:

隊列
當請求完成或>失敗時,處理程序塊調度到的操作隊列。

該塊將在隊列中傳入的任何線程上執行。

0

NSURLConnection的sendAsync定於線程的RunLoop其對AFAIK 所以稱爲線程塊啓動它

相關問題