2011-07-25 30 views
0

我叫默認地圖應用程序。從我的應用程序,但例如,當我選擇我的iPhone上的葡萄牙語言的當前位置NSURL返回零。 我已經使用UTF8encoding和百分比封裝如下: -Nsurl返回零當我選擇iPhone語言除英文

NSString *encodedURLString = [urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
    //where urlString has value http://maps.google.com/maps?saddr=Localiza\u00e7\u00e3o+actual&daddr=28.6522907,77.1929857 
NSURL *URL = [NSURL URLWithString:encodedURLString]; 
[[UIApplication sharedApplication] openURL:URL]; 

我已經嘗試NSUTF8Encoding代替NSASCIIStringEncoding但沒有任何幫助。 thanx的任何幫助。

+0

你嘗試對其進行編碼後,但創造它從一個URL之前打印出來的字符串值?奇怪的是編碼整個URL字符串,通常你只需要編碼請求數據。 – Perception

回答

1

您正在對整個URL進行百分比編碼。

這會將http://www.google.com轉換爲http%3A//www.google.com,這是一個格式不正確的URL。

從NSURL類參考:

返回值:與URLString初始化的NSURL對象。如果字符串格式不正確,則返回nil。

Ergo,您正在領取零。

你想要做的是這樣的:

NSString *path = @"http://maps.google.com/maps"; 
NSString *query = @"saddr=Localiza\u00e7\u00e3o+actual&daddr=28.6522907,77.1929857"; 
query = [query stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]; 

NSString *url = [NSString stringWithFormat: @"%@?%@", path, query]; 
NSURL *URL = [NSURL URLWithString: url]; 
[[UIApplication sharedApplication] openURL: URL];