-(NSDictionary *)fetchFromUrl:(NSString *)url{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
dataFetched = [NSJSONSerialization JSONObjectWithData:data
options:0
error:NULL];
}];
[task resume];
NSLog(@"dataFetched, %@", dataFetched);
return dataFetched;
}
所以我试图把dataFetched作为一个全局变量,所以我可以访问它在我的.m文件,并使其对其他.m文件访问,但是当我试图NSLog
的dataFetched从其他.m文件输出(null)。无论如何,我可以通过其他需要数据的.m文件访问数据吗?如何从NSURLSessionDataTask
它的工作!但这(void(^)(NSDictionary * data))字典是如何工作的? – jane
您正在进行一个API调用,并且在后台工作(异步),并且您使用return'NSDictionary'声明的函数以同步方式工作,这就是为什么当您在此之前得到响应时,它将返回空字典,块在异步方式工作。 –
好吧,它的工作,但我将如何访问数据值?我试过使用__block,但它仍然没有得到值。 – jane