Ios 来自CLPlacemark的区域设置

Ios 来自CLPlacemark的区域设置,ios,core-location,clplacemark,Ios,Core Location,Clplacemark,我尝试从CLPlacemark对象获取ISO国家代码区域设置,如“en_US”。当我对对象进行NSLog时,我会得到很多文本,包括: address = { "localized_address" = ( {

我尝试从CLPlacemark对象获取ISO国家代码区域设置,如“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

谢谢你的帮助
伯恩哈德

这有点老套,但这是您获取信息的一种方式

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

这个正则表达式很难看,可能可以改进(我使用过),但这应该可以为您获取区域设置。

这有点粗糙,但这是您可以获取信息的一种方法

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

这个正则表达式很难看,可能可以改进(我用过),但它应该可以为您获取区域设置。

en_US不是国家代码,而是本地代码。不,你说的是国家代码,在你的结果中是
GB
en_US
是显示数据的地方。在您的情况下,数据出现在
en_-US
上,这意味着国家名称是
Great brittain
,如果使用本地
nl_-nl
,则国家名称应该是
Groot Brittannië
。这意味着您的响应中的local仅代表语言格式。@rckoenes噢,谢谢。好的,我想知道local(我会在我的问题中编辑它),它出现在place mark描述中,但我找不到如何访问它。文档中没有提到如何获取甚至设置local。是的。但是我想知道NSLog中CLPlacemark对象描述中本地的外观。
en_US
不是国家代码,而是本地代码。不,你说的是国家代码,在你的结果中是
GB
en_US
是显示数据的地方。在您的情况下,数据出现在
en_-US
上,这意味着国家名称是
Great brittain
,如果使用本地
nl_-nl
,则国家名称应该是
Groot Brittannië
。这意味着您的响应中的local仅代表语言格式。@rckoenes噢,谢谢。好的,我想知道local(我会在我的问题中编辑它),它出现在place mark描述中,但我找不到如何访问它。文档中没有提到如何获取甚至设置local。是的。但我想知道NSLog中CLPlacemark对象描述中本地的外观。好吧,不完全是我想要的,但我当然可以工作,至少目前是这样。好吧,不完全是我想要的,但我当然可以工作,至少目前是这样。