Ich verwende die Open Weather API, um Live-Wetter abhängig vom Standort des Benutzers zu erhalten. Ich mache zuerst eine Variable urllink
und legen Sie es gleich der HTTP-Anforderung genannt:NSString ist null, wenn es von einem NSURL konvertiert wird
NSString *urllink = [NSString stringWithFormat:@"api.openweathermap.org/data/2.5/weather?lat=%f&lon=%f&appid=%@", lat, lng, WEATHERAPIKEY];
Dann konvertiere ich diese Zeichenfolge zu einer URL. Konvertieren url zurück zu bespannen, weil ich es zu NSData
Objekt ändern müssen:
NSURL *jsonURL = [NSURL URLWithString:[self urlEncodeValue:urllink]];
NSString *jsonDataString = [[NSString alloc]initWithContentsOfURL:jsonURL]; // error on this line
NSLog(@"This is jsonDataString:%@", jsonDataString);
NSData *jsonData = [jsonDataString dataUsingEncoding:NSUTF8StringEncoding];
Die urllink
Variable konvertiert perfekt NSURL
. Aber wenn ich versuche, die NSURL
zu NSString
zu konvertieren, bekomme ich nil
. Das gibt mir nil
für NSData
.
Warum ist die Zeile:
NSString *jsonDataString = [[NSString alloc]initWithContentsOfURL:jsonURL];
mich nil
für jsonDataString
geben?
haben Sie fügen die URL zu Ihrem Browser und getestet? Was war das Ergebnis ? –
Ja, tat ich. Es gab mir die richtige JSON-Zeichenfolge. Also alles hat gut funktioniert. –