0

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

- (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”

4

2 回答 2

2

尝试这个。

您的地址格式就像

“800,麦迪逊大道,纽约,纽约”

其中包含单词之间的空格。删除带“+”号的空格。您的最终到达网址应类似于以下网址。有了这个,您可以从 iOS 6 上的应用程序启动 Map。

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

于 2013-02-25T06:59:04.377 回答
0

URL 不能有空格。空格和其他特殊字符需要正确转义。你要:

NSString *escapedAddress = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *addressUrl = [NSString stringWithFormat: @"http://maps.apple.com/?q=%@", escapedAddress];
于 2013-02-24T21:03:45.657 回答