如何在iOS下以编程方式将“国家代码”转换为“移动国家代码”?

时间:2013-03-19 14:36:34

标签: iphone ios geocoding country-codes mobile-country-code

我可以从NSLocale或GeoPlugin获取国家/地区代码(ISO 3166'双字母代码')。

但我的要求是获取MCC(移动国家/地区代码)。我需要使用当前设备的mcc调用一个REST API来确定用户是在家还是在国外。

我考虑过将MCC和CC作为键值对保留本地数据库。但是如果我用数据包打包数据库,这不会是最新的。

我在搜索这个问题之前搜索了很多东西。是否有任何iOS API或任何第三方网站将CC转换为MCC?

提前致谢。

3 个答案:

答案 0 :(得分:4)

对于手动,您可以使用此

NSDictionary *dictDialingCodes = [[NSDictionary alloc]initWithObjectsAndKeys:
                    @"972", @"IL",
                    @"93", @"AF",
                    @"355", @"AL",
                    @"213", @"DZ",
                    @"1", @"AS",
                    @"376", @"AD",
                    @"244", @"AO",
                    @"1", @"AI",
                    @"1", @"AG",
                    @"54", @"AR",
                    @"374", @"AM",
                    @"297", @"AW",
                    @"61", @"AU",
                    @"43", @"AT",
                    @"994", @"AZ",
                    @"1", @"BS",
                    @"973", @"BH",
                    @"880", @"BD",
                    @"1", @"BB",
                    @"375", @"BY",
                    @"32", @"BE",
                    @"501", @"BZ",
                    @"229", @"BJ",
                    @"1", @"BM", @"975", @"BT",
                    @"387", @"BA", @"267", @"BW", @"55", @"BR", @"246", @"IO",
                    @"359", @"BG", @"226", @"BF", @"257", @"BI", @"855", @"KH",
                    @"237", @"CM", @"1", @"CA", @"238", @"CV", @"345", @"KY",
                    @"236", @"CF", @"235", @"TD", @"56", @"CL", @"86", @"CN",
                    @"61", @"CX", @"57", @"CO", @"269", @"KM", @"242", @"CG",
                    @"682", @"CK", @"506", @"CR", @"385", @"HR", @"53", @"CU",
                    @"537", @"CY", @"420", @"CZ", @"45", @"DK", @"253", @"DJ",
                    @"1", @"DM", @"1", @"DO", @"593", @"EC", @"20", @"EG",
                    @"503", @"SV", @"240", @"GQ", @"291", @"ER", @"372", @"EE",
                    @"251", @"ET", @"298", @"FO", @"679", @"FJ", @"358", @"FI",
                    @"33", @"FR", @"594", @"GF", @"689", @"PF", @"241", @"GA",
                    @"220", @"GM", @"995", @"GE", @"49", @"DE", @"233", @"GH",
                    @"350", @"GI", @"30", @"GR", @"299", @"GL", @"1", @"GD",
                    @"590", @"GP", @"1", @"GU", @"502", @"GT", @"224", @"GN",
                    @"245", @"GW", @"595", @"GY", @"509", @"HT", @"504", @"HN",
                    @"36", @"HU", @"354", @"IS", @"91", @"IN", @"62", @"ID",
                    @"964", @"IQ", @"353", @"IE", @"972", @"IL", @"39", @"IT",
                    @"1", @"JM", @"81", @"JP", @"962", @"JO", @"77", @"KZ",
                    @"254", @"KE", @"686", @"KI", @"965", @"KW", @"996", @"KG",
                    @"371", @"LV", @"961", @"LB", @"266", @"LS", @"231", @"LR",
                    @"423", @"LI", @"370", @"LT", @"352", @"LU", @"261", @"MG",
                    @"265", @"MW", @"60", @"MY", @"960", @"MV", @"223", @"ML",
                    @"356", @"MT", @"692", @"MH", @"596", @"MQ", @"222", @"MR",
                    @"230", @"MU", @"262", @"YT", @"52", @"MX", @"377", @"MC",
                    @"976", @"MN", @"382", @"ME", @"1", @"MS", @"212", @"MA",
                    @"95", @"MM", @"264", @"NA", @"674", @"NR", @"977", @"NP",
                    @"31", @"NL", @"599", @"AN", @"687", @"NC", @"64", @"NZ",
                    @"505", @"NI", @"227", @"NE", @"234", @"NG", @"683", @"NU",
                    @"672", @"NF", @"1", @"MP", @"47", @"NO", @"968", @"OM",
                    @"92", @"PK", @"680", @"PW", @"507", @"PA", @"675", @"PG",
                    @"595", @"PY", @"51", @"PE", @"63", @"PH", @"48", @"PL",
                    @"351", @"PT", @"1", @"PR", @"974", @"QA", @"40", @"RO",
                    @"250", @"RW", @"685", @"WS", @"378", @"SM", @"966", @"SA",
                    @"221", @"SN", @"381", @"RS", @"248", @"SC", @"232", @"SL",
                    @"65", @"SG", @"421", @"SK", @"386", @"SI", @"677", @"SB",
                    @"27", @"ZA", @"500", @"GS", @"34", @"ES", @"94", @"LK",
                    @"249", @"SD", @"597", @"SR", @"268", @"SZ", @"46", @"SE",
                    @"41", @"CH", @"992", @"TJ", @"66", @"TH", @"228", @"TG",
                    @"690", @"TK", @"676", @"TO", @"1", @"TT", @"216", @"TN",
                    @"90", @"TR", @"993", @"TM", @"1", @"TC", @"688", @"TV",
                    @"256", @"UG", @"380", @"UA", @"971", @"AE", @"44", @"GB",
                    @"1", @"US", @"598", @"UY", @"998", @"UZ", @"678", @"VU",
                    @"681", @"WF", @"967", @"YE", @"260", @"ZM", @"263", @"ZW",
                    @"591", @"BO", @"673", @"BN", @"61", @"CC", @"243", @"CD",
                    @"225", @"CI", @"500", @"FK", @"44", @"GG", @"379", @"VA",
                    @"852", @"HK", @"98", @"IR", @"44", @"IM", @"44", @"JE",
                    @"850", @"KP", @"82", @"KR", @"856", @"LA", @"218", @"LY",
                    @"853", @"MO", @"389", @"MK", @"691", @"FM", @"373", @"MD",
                    @"258", @"MZ", @"970", @"PS", @"872", @"PN", @"262", @"RE",
                    @"7", @"RU", @"590", @"BL", @"290", @"SH", @"1", @"KN",
                    @"1", @"LC", @"590", @"MF", @"508", @"PM", @"1", @"VC",
                    @"239", @"ST", @"252", @"SO", @"47", @"SJ", @"963",
                    @"SY",@"886",
                    @"TW", @"255",
                    @"TZ", @"670",
                    @"TL",@"58",
                    @"VE",@"84",
                    @"VN",
                    @"284", @"VG",
                    @"340", @"VI",
                    @"678",@"VU",
                    @"681",@"WF",
                    @"685",@"WS",
                    @"967",@"YE",
                    @"262",@"YT",
                    @"27",@"ZA",
                    @"260",@"ZM",
                    @"263",@"ZW",
                    nil];

答案 1 :(得分:2)

如果我理解你的问题,你想要达到这个目的:

CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = info.subscriberCellularProvider;

NSLog(@"MCC >> %@", carrier.mobileCountryCode);

也许此代码可用于调整它,因此您可以输入动态国家/地区代码而不是subscriberCellularProvider。

答案 2 :(得分:1)

- (NSDictionary *)callingCodeMap
{
    return @{
        @"AD" : @"+376",
        @"AE" : @"+971",
        @"AF" : @"+93",
        @"AG" : @"+1268",
        @"AI" : @"+1264",
        @"AL" : @"+355",
        @"AM" : @"+374",
        @"AN" : @"+599",
        @"AO" : @"+244",
        @"AQ" : @"+672",
        @"AR" : @"+54",
        @"AS" : @"+1684",
        @"AT" : @"+43",
        @"AU" : @"+61",
        @"AW" : @"+297",
        @"AZ" : @"+994",
        @"BA" : @"+387",
        @"BB" : @"+1246",
        @"BD" : @"+880",
        @"BE" : @"+32",
        @"BF" : @"+226",
        @"BG" : @"+359",
        @"BH" : @"+973",
        @"BI" : @"+257",
        @"BJ" : @"+229",
        @"BL" : @"+590",
        @"BM" : @"+1441",
        @"BN" : @"+673",
        @"BO" : @"+591",
        @"BR" : @"+55",
        @"BS" : @"+1242",
        @"BT" : @"+975",
        @"BW" : @"+267",
        @"BY" : @"+375",
        @"BZ" : @"+501",
        @"CA" : @"+1",
        @"CC" : @"+61",
        @"CD" : @"+243",
        @"CF" : @"+236",
        @"CG" : @"+242",
        @"CH" : @"+41",
        @"CI" : @"+225",
        @"CK" : @"+682",
        @"CL" : @"+56",
        @"CM" : @"+237",
        @"CN" : @"+86",
        @"CO" : @"+57",
        @"CR" : @"+506",
        @"CU" : @"+53",
        @"CV" : @"+238",
        @"CX" : @"+61",
        @"CY" : @"+357",
        @"CZ" : @"+420",
        @"DE" : @"+49",
        @"DJ" : @"+253",
        @"DK" : @"+45",
        @"DM" : @"+1767",
        @"DO" : @"+1809",
        @"DZ" : @"+213",
        @"EC" : @"+593",
        @"EE" : @"+372",
        @"EG" : @"+20",
        @"ER" : @"+291",
        @"ES" : @"+34",
        @"ET" : @"+251",
        @"FI" : @"+358",
        @"FJ" : @"+679",
        @"FK" : @"+500",
        @"FM" : @"+691",
        @"FO" : @"+298",
        @"FR" : @"+33",
        @"GA" : @"+241",
        @"GB" : @"+44",
        @"GD" : @"+1473",
        @"GE" : @"+995",
        @"GH" : @"+233",
        @"GI" : @"+350",
        @"GL" : @"+299",
        @"GM" : @"+220",
        @"GN" : @"+224",
        @"GQ" : @"+240",
        @"GR" : @"+30",
        @"GT" : @"+502",
        @"GU" : @"+1671",
        @"GW" : @"+245",
        @"GY" : @"+592",
        @"HK" : @"+852",
        @"HN" : @"+504",
        @"HR" : @"+385",
        @"HT" : @"+509",
        @"HU" : @"+36",
        @"ID" : @"+62",
        @"IE" : @"+353",
        @"IL" : @"+972",
        @"IM" : @"+44",
        @"IN" : @"+91",
        @"IQ" : @"+964",
        @"IR" : @"+98",
        @"IS" : @"+354",
        @"IT" : @"+39",
        @"JM" : @"+1876",
        @"JO" : @"+962",
        @"JP" : @"+81",
        @"KE" : @"+254",
        @"KG" : @"+996",
        @"KH" : @"+855",
        @"KI" : @"+686",
        @"KM" : @"+269",
        @"KN" : @"+1869",
        @"KP" : @"+850",
        @"KR" : @"+82",
        @"KW" : @"+965",
        @"KY" : @"+1345",
        @"KZ" : @"+7",
        @"LA" : @"+856",
        @"LB" : @"+961",
        @"LC" : @"+1758",
        @"LI" : @"+423",
        @"LK" : @"+94",
        @"LR" : @"+231",
        @"LS" : @"+266",
        @"LT" : @"+370",
        @"LU" : @"+352",
        @"LV" : @"+371",
        @"LY" : @"+218",
        @"MA" : @"+212",
        @"MC" : @"+377",
        @"MD" : @"+373",
        @"ME" : @"+382",
        @"MF" : @"+1599",
        @"MG" : @"+261",
        @"MH" : @"+692",
        @"MK" : @"+389",
        @"ML" : @"+223",
        @"MM" : @"+95",
        @"MN" : @"+976",
        @"MO" : @"+853",
        @"MP" : @"+1670",
        @"MR" : @"+222",
        @"MS" : @"+1664",
        @"MT" : @"+356",
        @"MU" : @"+230",
        @"MV" : @"+960",
        @"MW" : @"+265",
        @"MX" : @"+52",
        @"MY" : @"+60",
        @"MZ" : @"+258",
        @"NA" : @"+264",
        @"NC" : @"+687",
        @"NE" : @"+227",
        @"NG" : @"+234",
        @"NI" : @"+505",
        @"NL" : @"+31",
        @"NO" : @"+47",
        @"NP" : @"+977",
        @"NR" : @"+674",
        @"NU" : @"+683",
        @"NZ" : @"+64",
        @"OM" : @"+968",
        @"PA" : @"+507",
        @"PE" : @"+51",
        @"PF" : @"+689",
        @"PG" : @"+675",
        @"PH" : @"+63",
        @"PK" : @"+92",
        @"PL" : @"+48",
        @"PM" : @"+508",
        @"PN" : @"+870",
        @"PR" : @"+1",
        @"PT" : @"+351",
        @"PW" : @"+680",
        @"PY" : @"+595",
        @"QA" : @"+974",
        @"RO" : @"+40",
        @"RS" : @"+381",
        @"RU" : @"+7",
        @"RW" : @"+250",
        @"SA" : @"+966",
        @"SB" : @"+677",
        @"SC" : @"+248",
        @"SD" : @"+249",
        @"SE" : @"+46",
        @"SG" : @"+65",
        @"SH" : @"+290",
        @"SI" : @"+386",
        @"SK" : @"+421",
        @"SL" : @"+232",
        @"SM" : @"+378",
        @"SN" : @"+221",
        @"SO" : @"+252",
        @"SR" : @"+597",
        @"ST" : @"+239",
        @"SV" : @"+503",
        @"SY" : @"+963",
        @"SZ" : @"+268",
        @"TC" : @"+1649",
        @"TD" : @"+235",
        @"TG" : @"+228",
        @"TH" : @"+66",
        @"TJ" : @"+992",
        @"TK" : @"+690",
        @"TL" : @"+670",
        @"TM" : @"+993",
        @"TN" : @"+216",
        @"TO" : @"+676",
        @"TR" : @"+90",
        @"TT" : @"+1868",
        @"TV" : @"+688",
        @"TW" : @"+886",
        @"TZ" : @"+255",
        @"UA" : @"+380",
        @"UG" : @"+256",
        @"US" : @"+1",
        @"UY" : @"+598",
        @"UZ" : @"+998",
        @"VA" : @"+39",
        @"VC" : @"+1784",
        @"VE" : @"+58",
        @"VG" : @"+1284",
        @"VI" : @"+1340",
        @"VN" : @"+84",
        @"VU" : @"+678",
        @"WF" : @"+681",
        @"WS" : @"+685",
        @"YE" : @"+967",
        @"YT" : @"+262",
        @"ZA" : @"+27",
        @"ZM" : @"+260",
        @"ZW" : @"+263",
    };
}

或尝试此类别:https://gist.github.com/kukat/ecf0ef352c597178a81c

来源:http://countrycode.org/