2010-03-28 3 views
18

Ho il seguente codice per aprire google maps:UIApplication OpenUrl che non funziona con NSString formattato

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

Ma non funziona e non v'è alcun errore. Semplicemente non si apre.

risposta

44

URLWithString richiede una stringa con percentuale di escape. L'url di esempio contiene spazi che determinano la creazione di un NSURL nullo. Inoltre, addressString può contenere anche caratteri che devono essere sottoposti a escape. Provare per cento-sfuggire alla stringa URL prima: Necessità

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

per sfuggire al urlString, altro [NSURL URLWithString: urlString] tornerà nill.

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