text 从异步接口获取变量同步返回#async
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 从异步接口获取变量同步返回#async相关的知识,希望对你有一定的参考价值。
// !!!学习该方法,如何从异步任务中,进行同步获取,利用信号量
- (NSArray *)tasksForKeyPath:(NSString *)keyPath {
__block NSArray *tasks = nil;
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
if ([keyPath isEqualToString:NSStringFromSelector(@selector(dataTasks))]) {
tasks = dataTasks;
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(uploadTasks))]) {
tasks = uploadTasks;
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(downloadTasks))]) {
tasks = downloadTasks;
} else if ([keyPath isEqualToString:NSStringFromSelector(@selector(tasks))]) {
tasks = [@[dataTasks, uploadTasks, downloadTasks] valueForKeyPath:@"@unionOfArrays.self"];
}
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
return tasks;
}
以上是关于text 从异步接口获取变量同步返回#async的主要内容,如果未能解决你的问题,请参考以下文章
java CountDownLatch 控制异步和同步
如何用Verilog设计一个异步清0、同步时钟使能和异步数据加载型8位二进制家法计数器?
Spring Boot中调用@Async注解的异步方法并获取返回值
Spring Boot中调用@Async注解的异步方法并获取返回值
Spring Boot中调用@Async注解的异步方法并获取返回值
Spring Boot中调用@Async注解的异步方法并获取返回值