2010-03-28 24 views
18

我有以下代碼,打開谷歌地圖:的UIApplication的OpenURL不帶格式的NSString工作

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

但它不工作,沒有錯誤。它只是不開放。

回答

44

URLWithString需要百分比轉義的字符串。您的示例網址包含導致創建無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]]; 
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] ]]; 
相關問題