我正在使用下面的代碼來進行網絡調用。我知道響應將在mainQueue中運行,因爲我已經指定隊列參數爲[NSOperationQueue mainQueue]
,但我想知道實際的sendAsynchronousRequest
操作將在哪裏執行。這個操作是從mainThread調用的,所以在主線程上異步運行或者NSURLConnection
會自動創建後臺線程?沒有這方面的文檔,iOS儀器不顯示後臺線程分離,所以想知道這是如何工作的! Apple文檔沒有提供關於此的詳細信息。iOS哪個線程NSURLConnection sendAsynchronousRequest運行於
順便說一句,我知道這是過時,但我們有遺留代碼尚未遷移當您使用以下版本使用NSURLSession
[NSURLConnection sendAsynchronousRequest:urlRequest
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if(completion) {
completion(data, error);
}
}];
相同的問題;
self.urlConnection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];
這裏也不能確定這個請求執行在哪個線程上,以及如何使它異步運行!
它是否會造成您的問題,或者您只是好奇? – Wain
它不會導致任何問題,但我想確保操作不能在主線程上運行,並且應該在其他線程上分離。除非絕對需要,否則我不想在後臺線程上調度。 – applefreak