-(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