Benim durumumda, bir Uygulama başladığında, NSURLSessionDataTask
kullanarak 3 web API'sini aramak istiyorum. Her API için 3 farklı metodum var ve her bir metodun içinde bir tane NSURLSessionDataTask
var.Seri olarak birden çok NSURLSessionDataTask nasıl çalıştırılır?
Kodumu, bu 3 yöntem seri olarak yürütecek şekilde biçimlendirmek istiyorum. Çünkü B yöntemi, A yanıtı yöntemine bağlıdır ve yöntem B, B yanıtının cevabına bağlıdır. Her yöntem ayrıca API yanıtı aldıktan sonra bazı veritabanı işlemleri yapıyor. Yani, methodA
, methodB
ve methodC
'un seri yürütmesine ihtiyacım var.
Bunun mantıksal bir şey olduğunu biliyorum, ancak dispatch_semaphore_t
veya dispatch_group_wait
kullanmak istiyorum ancak NSURLSessionDataTask
ile bağlantıda bunları nasıl kullanabileceğime dair hiçbir fikrim yok.
Bununla denedim:
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 *************");
Yukarıdaki kod 1 yönteme yapıştı .. Lütfen bana yardım .. teşekkürler şimdiden !!!
Tüm seri işlemler için NSOperationQueue kullanın. –
Kavramsal olarak, 'NSURLSession' bir işlem kuyruğudur! – NSPratik
bu soruya bakın http://stackoverflow.com/questions/21198404/nsurlsession-with-nsblockoperation-and-queues –