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、マディソン アベニュー、ニューヨーク、NY」

単語間にスペースが含まれています。「+」記号でスペースを削除します。最終的な URL は以下の URL のようになります。これで、iOS 6 のアプリからマップを起動できます。

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 に答える