我對iOS目標C中的多線程有疑問。我從來沒有在線程上工作過。 在我的應用程序中,我有幾個任務只需要在後臺運行,用戶界面不會被凍結。 以下是代碼片段,iOS目標中的多線程C
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
[self someFunctionCallinWebservice];
dispatch_async(dispatch_get_main_queue(), ^(void){
//UI Updates
});
});
在上面的代碼,功能:someFunctionCallinWebservice呼籲裏面我是用AFNetworking庫web服務。在web服務,如果它是成功的,那麼我在本地保存數據。我打電話的成功塊的功能,以節省從服務器發送類似下面的數據,
[manager POST:url parameters:parameter success:^(AFHTTPRequestOperation *operation, id responseObject){
[self functionToSaveData:someArray];
}
這裏someFunctionCallinWebservice在後臺運行,但在前臺[self functionToSaveData:someArray]
運行。我是否應該在後臺線程中使用這個functionToSaveData?
我的意思是如果我在後臺調用函數,那麼函數的所有相關功能,如調用服務器,獲取數據並保存它也必須落在後臺線程中。爲什麼我應該再次創建另一個線程?
請幫助...
它可以在後臺運行,直到你需要以任何方式與UI類進行交互。因此,在後臺獲取並保存,然後在完成時推動UI進行更新。 – Droppy