-1
就我而言,當應用程序啓動時,我想使用NSURLSessionDataTask
調用3個Web API。我對每個API有3種不同的方法,每種方法中有一個NSURLSessionDataTask
。如何串行執行多個NSURLSessionDataTask?
我想以這樣一種方式塑造我的代碼,以便這3種方法連續執行。因爲方法B依賴於方法A的響應而方法C依賴於方法B的響應。獲取API響應後,每種方法還會執行一些數據庫操作。所以,我需要連續執行methodA
,methodB
和methodC
。
我知道這是合乎邏輯的事情,但我想用dispatch_semaphore_t
或dispatch_group_wait
,但我完全不知道如何將它們與NSURLSessionDataTask
結合使用。提前
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[self syncA:^(BOOL success) {
NSLog(@"syncA — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self syncB:^(BOOL success) {
NSLog(@"syncB — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
[self syncC:^(BOOL success) {
NSLog(@"syncC — Completed");
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
NSLog(@"************* END OF SYNC *************");
上面的代碼粘貼在第1種方法.. 請幫我..謝謝!!!:
我試圖與這
使用NSOperationQueue進行任何串行操作。 –
從概念上講,'NSURLSession'是一個操作隊列! – NSPratik
看看這個問題http://stackoverflow.com/questions/21198404/nsurlsession-with-nsblockoperation-and-queues –