Open Weather APIを使用して、ユーザーの場所に応じてライブ天気を取得しています。それから私は、URLにその文字列を変換NSStringから変換されたときにNSStringがnullになる
NSString *urllink = [NSString stringWithFormat:@"api.openweathermap.org/data/2.5/weather?lat=%f&lon=%f&appid=%@", lat, lng, WEATHERAPIKEY];
:私は最初urllink
という変数を作成し、httpリクエストにそれが等しくなるように設定します。私はNSData
オブジェクトにそれを変更する必要があるため、バック文字列にURLを変換します
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];
urllink
変数がNSURL
に完全に変換されます。しかし、NSURL
をNSString
に変換しようとすると、nil
となります。その代償としてNSData
の場合はnil
となります。
なぜラインです:
NSString *jsonDataString = [[NSString alloc]initWithContentsOfURL:jsonURL];
は私にjsonDataString
ためnil
を与えますか?あなたはおそらく非同期が必要
ブラウザにそのURLを貼り付け、テストしたのですか?結果は何でしたか? –
はい、私はしました。それは私に正しいjson文字列を与えました。だからすべてうまくいった。 –