#pragma mark - 加载数据
- (void)loadDataSuccess:(void (^)(void))success
failure:(void (^)(NSString *errorMessage))failure {
NSInteger totalCount = 3;
__block NSInteger requestCount = 0;
dispatch_semaphore_t sem = dispatch_semaphore_create(0);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
if (++requestCount == totalCount) {
dispatch_semaphore_signal(sem);
}
if (++requestCount == totalCount) {
dispatch_semaphore_signal(sem);
}
if (++requestCount == totalCount) {
dispatch_semaphore_signal(sem);
}
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
dispatch_async(dispatch_get_main_queue(), ^{
success();
});
});
}
private let semaphore = DispatchSemaphore.init(value: 1)
private let requestQueue = DispatchQueue.init(label: "request.quque")
requestQueue.async { [unowned self] in
semaphore.wait()
footerAddRequest()
semaphore.signal()
}