2010-03-28 11 views
18

Mam następujący kod do otwartych mapach Google:UIApplication OpenURL nie działa ze sformatowanych NSString

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

Ale to nie działa i nie ma błędu. Po prostu się nie otwiera.

Odpowiedz

44

URLWithString wymaga ciągu z ucieczką procentową. Twój przykładowy URL zawiera spacje, w wyniku czego tworzony jest zerowy NSURL. Dodatkowo, parametr addressString może również zawierać znaki, które muszą zostać zmienione. Spróbuj procent-ucieczki pierwszy ciąg 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]]; 
5

potrzebę ucieczki z urlString, indziej [bibliotece NSURL URLWithString: urlString] powróci Nill.

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