我在iOS應用程序中實現了一些RESTful API,目前我正在開發登錄功能。用戶輸入用戶名和密碼,當按下登錄時,會發生以下情況:iOS 5+ - 執行請求時凍結主線程執行
網絡活動指示變爲可見,文本標籤變爲隱藏(以及登錄按鈕),活動指示變爲可見,帶有文字「簽入」的標籤。然後:
dispatch_async(queue,
^{[self performSelectorOnMainThread:@selector(performAuthCall)
withObject:nil waitUntilDone:YES];});
在performAuthCall方法中,視圖控制器的屬性(一個布爾)被設置爲是或否,取決於如果登錄成功與否(I使用NSURLConnection的的sendSynchronousRequest)。如果是,則會呈現另一個視圖控制器。如果不是,則顯示警報。 我沒有真正得到我要去的結果,控制器在執行請求之前正在測試成功的登錄布爾值,並且我嘗試了不同的方法,但是我無法讓它正常工作並且不凍結UI。所以,我的問題是:
我怎樣才能使所有的隱藏/顯示的東西第一(如使可見的活動指標和「登錄」標籤),然後開始授權過程,等到它完成,只然後繼續到另一個視圖控制器或顯示警報或東西?
不要阻塞主線程。 – 2013-04-10 14:21:59