我有一個NSURLConnection執行任務爲我上傳圖像。這就是我如何初始化和啓動這方面:NSRunLoop問題與NSURLConnection和鍵盤輸入
_connection = [[NSURLConnection alloc]
initWithRequest:request
delegate:self
startImmediately:NO];
[_connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
orMode:NSDefaultRunLoopMode];
[_connection start];
其實我從別的地方自行dispatch_queue調用此方法dispatch_async
。 問題是當圖像上傳時,我開始在鍵盤上輸入我的應用程序,有時會凍結應用程序。 經過一番挖掘,我開始明白mainRunLoop
實際上是處理輸入請求的東西,例如鍵盤按鈕按下。我想知道我是否正確,這實際上是導致我的問題,這是凍結我的應用程序。 有關這個問題的任何幫助,非常感謝。 預先感謝您。
P.S:我試着在currentRunLoop上運行我的連接,但它不起作用,除非我手動啓動currentRunLoop。
考慮使用'NSRunLoopCommonModes'而不是'NSDefaultRunLoopMode',它將確保它在UI延長的相關活動(例如滾動滾動視圖)時仍然被調用。 – Rob
順便說一句,如果您從後臺隊列開始請求,則只需要上述代碼。否則,只要執行'initWithRequest:delegate:'。我認爲你的問題不在於上面的代碼。這個問題與你的問題有關嗎?(這是一個崩潰,而不是凍結)?當你說「凍結」你說你的UI凍結,或者只是說你的網絡活動停止? – Rob