2010-03-28 9 views
18

Tengo el siguiente código para abrir los mapas de Google:UIApplication OpenUrl que no trabajan con NSString formateada

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

Pero no funciona y no hay ningún error. Simplemente no se abre.

Respuesta

44

URLWithString requiere una cadena de porcentaje de escape. Su URL de muestra contiene espacios que dan como resultado la creación de un NSURL nulo. Además, addressString también puede contener caracteres que deben escaparse. Intenta por ciento de escapar de la cadena URL en primer lugar: Necesidad

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

para escapar de la urlString, otra cosa [NSURL URLWithString: urlString] volverá nula.

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