1. 程式人生 > >OC 異步順序加載的方法

OC 異步順序加載的方法

post 無限 block nbsp depend time ati patch 使用

方法一:發射信號量

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 異步順序加載的方法