我正在为我的项目开发一个 networkUtil,我需要一个获取 url 并返回从该 url 接收到的 JSON 的方法,使用 NSURLSessionDataTask 从服务器获取 JSON。方法如下:
+ (NSDictionary*) getJsonDataFromURL:(NSString *)urlString{
__block NSDictionary* jsonResponse;
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:urlString] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", jsonResponse);
}];
[dataTask resume];
return jsonResponse;
}
问题是我的方法中的completionHandler和方法本身在不同的线程上运行,并且在最后一行中,jsonResponse 始终为nil
我应该如何使用从urlString返回的 json设置jsonResponse?
这个问题的最佳实践是什么?