-(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;
}
Also versuchte ich setzen die dataFetched als globale Variable bekommen, so konnte ich es um meine .m-Datei zugreifen und sie zugänglich zu anderen .m-Datei machen, aber als ich versuchte, die dataFetched zu NSLog
aus anderen .m-Datei es ausgibt (null). Kann ich die Daten in meinen anderen .m-Dateien, die die Daten benötigen, trotzdem zugänglich machen?Wie NSDictionary von NSURLSessionDataTask
hat es funktioniert! aber wie funktioniert das (void (^) (NSDictionary * data) -Wörterbuch? – jane
Sie machen einen API-Aufruf und das funktioniert im Hintergrund (async), und die Funktion, die Sie mit 'NSDictionary' deklarieren, arbeitet synchron. Deshalb erhalten Sie, wenn Sie die Antwort erhalten, das leere wo als Block in asynchroner Weise arbeiten. –
Okay, es hat funktioniert, aber wie soll ich auf die Datenwerte zugreifen? Ich habe versucht mit __block, aber es immer noch nicht die Werte. – jane