我正在爲我的項目開發一個networkUtil,我需要一個獲取url的方法,並使用NSURLSessionDataTask從該URL返回從該URL獲得的JSON以從服務器獲取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運行總是零
我該如何設置jsonResponse與返回的json從urlString?
什麼是最佳實踐這個問題?
這是因爲你在做異步調用。有很多關於它的問題。 – Larme