无法在iOS 6上从应用程序启动Map

时间:2013-02-24 20:07:14

标签: iphone ios maps

我正在尝试从我的应用中启动地图,我正在使用以下内容:

- (void) showMap:(id) button {
    UIApplication *application = [UIApplication sharedApplication];
    NSString *address = [((PhoneButton *) button).cell.client fullAddress];
    NSString *addressUrl = [NSString stringWithFormat: @"http://maps.apple.com/?q=%@", address];
    NSLog(@"Maps String: %@", addressUrl);
    NSURL *map_url = [NSURL URLWithString:addressUrl];
    [application openURL:map_url];
};

嗯,它不起作用。我试图找到问题,但看起来我做得对。那么,我错过了什么?

PS:我的地址格式类似于“800,Madison Ave,New York,NY”

2 个答案:

答案 0 :(得分:2)

试试这个。

您的地址格式类似于

  

“800,Madison Ave,New York,NY”

包含单词之间的空格。用“+”符号删除空格。您的最终网址应如下网址。 有了它,您可以在iOS 6上从应用程序启动Map。

http://maps.apple.com/?q=800,+Madison+Ave,+New+York,+NY

答案 1 :(得分:0)

网址不能包含空格。空格和其他特殊字符需要正确转义。你想要:

NSString *escapedAddress = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *addressUrl = [NSString stringWithFormat: @"http://maps.apple.com/?q=%@", escapedAddress];