21

iPhone アプリから Google マップのフォワード ジオコーディング サービスにアクセスしようとしています。パイプを含む文字列から NSURL を作成しようとすると、nil ポインターが返されます。

NSURL *searchURL = [NSURL URLWithString:@"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false"];

Google APIで、パイプなしで境界座標を送信する方法が他にありません。これを行う方法についてのアイデアはありますか?

4

3 に答える 3

34

%7Cパイプを( char の URL エンコードされた値)に置き換えてみました|か?

于 2010-06-14T20:26:38.933 に答える
9

将来的に奇妙な文字を入れても安全にしたい場合は、stringByAddingPercentEscapesUsingEncodingメソッドを使用して文字列を「URL フレンドリー」にします...

NSString *rawUrlStr = @"http://maps.google.com/maps/api/geocode/json?address=6th+and+pine&bounds=37.331689,-122.030731|37.331689,-122.030731&sensor=false";
NSString *urlStr = [rawUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *searchURL = [NSURL URLWithString:urlStr];
于 2014-01-22T15:53:10.777 に答える