Nsurl返回nil当我选择iPhone语言除了英语



我从我的应用程序调用默认地图应用程序,但例如,当我选择葡萄牙语言在我的iphone上的当前位置NSURL返回nil。我已经使用了utf8编码和百分比封装如下:-

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

我已经尝试NSUTF8Encoding而不是NSASCIIStringEncoding,但没有任何帮助。谢谢你的帮助。

您正在对整个URL进行百分比编码。

http://www.google.com转换为http%3A//www.google.com,这是一个格式错误的URL。

来自NSURL类参考:

返回值:一个用URLString初始化的NSURL对象。如果字符串格式错误,则返回nil。

因此,您收到的是nil。

你要做的是:

NSString *path = @"http://maps.google.com/maps";
NSString *query = @"saddr=Localizau00e7u00e3o+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];

相关内容

最新更新