18

Googleマップを開くための次のコードがあります:

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

しかし、それは機能せず、エラーはありません。開かないだけです。

4

2 に答える 2

44

URLWithStringには、パーセントでエスケープされた文字列が必要です。サンプル URL にスペースが含まれているため、NSURL が作成されません。さらに、addressString には、エスケープする必要のある文字が含まれている場合もあります。最初に URL 文字列をパーセントでエスケープしてみてください。

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
NSString *escaped = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:escaped]];  
于 2010-03-28T23:13:52.620 に答える
5

urlString をエスケープする必要があります。エスケープしないと [NSURL URLWithString:urlString] は nill を返します。

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@, Anchorage, AK",addressString];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ]];
于 2010-07-16T01:35:16.940 に答える