使用NSURLSession同步获取数据(通过添加信号量)

//创建NSURL对象

NSURL *url = [NSURL URLWithString:@""]]; 

//创建请求对象

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@""]];

__block NSData *responseData = nil;    

__block NSError *responseError = nil;

NSURLSession *session = [NSURLSession sharedSession];

dispatch_semaphore_t semaphore= dispatch_semaphore_create(0);

NSURLSessionDataTask *task = [session dataTaskWithRequest:request

completionHandler:

^(NSData *data, NSURLResponse *response, NSError *error) {

// ...

responseData = data;

responseError = error;

NSLog(@"-----%@",response);

dispatch_semaphore_signal(semaphore);

}];

[task resume];

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容