1

私は取得しようとしますISO 国コードCLPlacemark オブジェクトの「en_US」などのロケール。オブジェクトで NSLog を実行すると、次のような多くのテキストが表示されます。

address =                         {
                        "localized_address" =                             (
                                                            {
                                address =                                     {
                                    formattedAddressLine =                                         (
                                        "Piccadilly Circus",
                                        "Coventry Street",
                                        London,
                                        W1J,
                                        England
                                    );
                                    structuredAddress =                                         {
                                        administrativeArea = England;
                                        areaOfInterest =                                             (
                                            "Piccadilly Circus",
                                            "Great Britain"
                                        );
                                        country = "United Kingdom";
                                        countryCode = GB;
                                        dependentLocality =                                             (
                                            Mayfair
                                        );
                                        fullThoroughfare = "Coventry Street";
                                        geoId =                                             (
                                        );
                                        locality = London;
                                        postCode = W1J;
                                        subAdministrativeArea = London;
                                        subLocality = Mayfair;
                                        thoroughfare = "Coventry Street";
                                    };
                                };
                                locale = "en_US";

最後の行に、必要な情報が正確に表示されます。しかし、この情報に直接アクセスする方法がわかりません。

CLPlacemark の ISOcountryCode プロパティにアクセスしようとすると、GB しか取得できません。

助けてくれてありがとうベルンハルト

4

1 に答える 1

0

少しハックですが、これは情報を取得できる可能性がある1つの方法です

NSString *placemarkDescription = [yourPlacemark description];
NSString *regex = @"(locale)(\\s+)(=)(\\s+)("".*?"")(;)";
NSRange localeRange = [placemarkDescription rangeOfString:regex options:NSRegularExpressionSearch];
NSString *locale = [placemarkDescription substringWithRange:localeRange];

その正規表現は醜く、おそらく改善される可能性があります (私はhttp://txt2re.comを使用しました) が、これでロケールを取得できるはずです。

于 2015-08-25T15:01:17.983 に答える