OC 異步順序加載的方法
方法一:發射信號量
OC —異步順序加載
先調用A接口,再調用B接口,再調用C接口
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
網絡A請求
中間寫block塊的網絡請求
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
網絡B請求
中間寫block塊的網絡請求
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
網絡C請求
中間寫block塊的網絡請求
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
//刷新頁面需要在主線程進行刷新操作
註: 發射信號量,設置無限時去等待,在這裏很關鍵一點,這個等待會阻塞線程,所以切記不要在主線程做這樣的操作
方法二:
使用線程隊列進行操作
NSOperation
NSOperationQueue * queue = [[NSOperationQueue alloc] init];
NSBlockOperation * o1 = [NSBlockOperation blockOperationWithBlock:^{
block隊列1
}];
NSBlockOperation * o2 = [NSBlockOperation blockOperationWithBlock:^{
block隊列2
}];
[op1 addDependency:op2];
[queue addOperation:op1];
[queue addOperation:op2];
OC 異步順序加載的方法