我正在尝试从我的应用中启动地图,我正在使用以下内容:
- (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”
答案 0 :(得分:2)
试试这个。
您的地址格式类似于
“800,Madison Ave,New York,NY”
包含单词之间的空格。用“+”符号删除空格。您的最终网址应如下网址。 有了它,您可以在iOS 6上从应用程序启动Map。
答案 1 :(得分:0)
网址不能包含空格。空格和其他特殊字符需要正确转义。你想要:
NSString *escapedAddress = [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *addressUrl = [NSString stringWithFormat: @"http://maps.apple.com/?q=%@", escapedAddress];