12

ユーザーの電話から国の通話コードを取得する簡単な方法があるかどうか疑問に思っています。

たとえば、私のアプリは、ユーザーの市外局番コードを事前に入力したいと考えています。

ユーザーが米国にいる場合は、コード+1が返され、中国の場合は+83、オーストラリアの場合は+61などが返されます。

私は周りを見回しましたが、私は見ることができました:

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];

呼び出しプレフィックスではなく、国コードの省略形を返すのはどれですか?

ヘルプをいただければ幸いです。

4

10 に答える 10

11

この情報と電話番号のフォーマットを提供するクラスについては、RMPhoneFormatを参照してください。

注:これは私が作成したものです。

于 2012-10-29T05:17:57.390 に答える
7

これは、呼び出し元のプレフィックスを取得するコードです

1)

- (NSDictionary *)getCountryCodeDictionary {
    return [NSDictionary dictionaryWithObjectsAndKeys:@"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", @"1", @"VG", @"1", @"VI", nil];
}

2)

#pragma mark - Custom Method 
-(void)setDefaultCountryCode{
 NSString *countryIdentifier = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
 NSLog(@"%@",[NSString stringWithFormat:@"+%@",[[self getCountryCodeDictionary] objectForKey:countryIdentifier]]);
}
于 2016-04-25T06:05:43.883 に答える
3

を使用coretelephony.frameworkすると、電話番号の国コードを取得できます。

CTTelephonyNetworkInfo *info = [CTTelephonyNetworkInfo new];

CTCarrier *carrier = info.subscriberCellularProvider;

NSLog(@"Country code is: %@",carrier.mobileCountryCode);
于 2013-02-26T09:29:25.613 に答える
1

NSLocaleCountryCodeISO-3166 で定義されている国コードであり、呼び出しコードではありません。別の場所で呼び出しコードを見つける必要があります。

ISO3166 -> 呼び出しコードの完全なリストについては、リンクを参照してください。

于 2012-10-29T04:58:23.990 に答える
1

HMDiallingCodeを使用します。CoreLocation とリバース ジオコーディングを使用してユーザーの国を特定し、国際ダイヤル コードを取得します。

于 2012-11-27T12:49:31.193 に答える
0

後で特定のファイルから国コードを読み取り、特定の国コードのデータをソートできるように、すべての国コードを csv ファイルに入れる必要があります。以下は国コードの完全なリストです

Afghanistan-93,
Albania-355,
Algeria-213,
Andorra-376,
Angola-244,
Argentina-54,
Armenia-374,
Australia-61,
Austria-43,
Azerbaijan-994,
Bahrain-973,
Bangladesh-880,
Belarus-375,
Belgium-32,
Belize-501,
Benin-229,
Bhutan-975,
Bolivia-591,
BosniaandHerzegovina-387,
Botswana-267,
Brazil-55,
Brunei-673,
Bulgaria-359,
BurkinaFaso-226,
Burundi-257,
Cambodia-855,
Cameroon-237,
Canada-1,
CapeVerde-238,
CentralAfricanRepublic-236,
Chad-235,
Chile-56,
China,People'sRepublicof-86,
Colombia-57,
Comoros-269,
Congo,DemocraticRepublicofthe(CongoヨKinshasa)-243,
Congo,Republicofthe(CongoヨBrazzaville)-242,
CostaRica-506,
Coted'Ivoire(IvoryCoast)-225,
Croatia-385,
Cuba-53,
Cyprus-357,
CzechRepublic-420,
Denmark-45,
Djibouti-253,
Ecuador-593,
Egypt-20,
ElSalvador-503,
EquatorialGuinea-240,
Eritrea-291,
Estonia-372,
Ethiopia-251,
Fiji-679,
Finland-358,
France-33,
Gabon-241,
Gambia,The-220,
Georgia-995,
Germany-49,
Ghana-233,
Greece-30,
Guatemala-502,
Guinea-224,
Guinea-Bissau-245,
Guyana-592,
Haiti-509,
Honduras-504,
Hungary-36,
Iceland-354,
India-91,
Indonesia-62,
Iran-98,
Iraq-964,
Ireland-353,
Israel-972,
Italy-39,
Japan-81,
Jordan-962,
Kazakhstan-7,
Kenya-254,
Kiribati-686,
Korea,DemocraticPeople'sRepublicof(NorthKorea)-850,
Korea,Republicof(SouthKorea)-82,
Kuwait-965,
Kyrgyzstan-996,
Laos-856,
Latvia-371,
Lebanon-961,
Lesotho-266,
Liberia-231,
Libya-218,
Liechtenstein-423,
Lithuania-370,
Luxembourg-352,
Macedonia-389,
Madagascar-261,
Malawi-265,
Malaysia-60,
Maldives-960,
Mali-223,
Malta-356,
MarshallIslands-692,
Mauritania-222,
Mauritius-230,
Mexico-52,
Micronesia-691,
Moldova-373,
Monaco-377,
Mongolia-976,
Montenegro-382,
Morocco-212,
Mozambique-258,
Myanmar(Burma)-95,
Namibia-264,
Nauru-674,
Nepal-977,
Netherlands-31,
NewZealand-64,
Nicaragua-505,
Niger-227,
Nigeria-234,
Norway-47,
Oman-968,
Pakistan-92,
Palau-680,
Panama-507,
PapuaNewGuinea-675,
Paraguay-595,
Peru-51,
Philippines-63,
Poland-48,
Portugal-351,
Qatar-974,
Romania-40,
Russia-7,
Rwanda-250,
Samoa-685,
SanMarino-378,
SaoTomeandPrincipe-239,
SaudiArabia-966,
Senegal-221,
Serbia-381,
Seychelles-248,
SierraLeone-232,
Singapore-65,
Slovakia-421,
Slovenia-386,
SolomonIslands-677,
Somalia-252,
SouthAfrica-27,
Spain-34,
SriLanka-94,
Sudan-249,
Suriname-597,
Swaziland-268,
Sweden-46,
Switzerland-41,
Syria-963,
Tajikistan-992,
Tanzania-255,
Thailand-66,
Timor-Leste(EastTimor)-670,
Togo-228,
Tonga-676,
Tunisia-216,
Turkey-90,
Turkmenistan-993,
Tuvalu-688,
Uganda-256,
Ukraine-380,
UnitedArabEmirates-971,
UnitedKingdom-44,
UnitedStates-1,
Uruguay-598,
Uzbekistan-998,
Vanuatu-678,
VaticanCity-379,
Venezuela-58,
Vietnam-84,
Yemen-967,
Zambia-260,
Zimbabwe-263,
Abkhazia-995,
China,Republicof(Taiwan)-886,
Somaliland-252,
SouthOssetia-995,
ChristmasIsland-61,
Cocos(Keeling)Islands-61,
NorfolkIsland-672,
NewCaledonia-687,
FrenchPolynesia-689,
Mayotte-262,
SaintBarthelemy-590,
SaintMartin-590,
SaintPierreandMiquelon-508,
WallisandFutuna-681,
CookIslands-682,
Niue-683,
Tokelau-690,
Guernsey-44,
IsleofMan-44,
Jersey-44,
BritishIndianOceanTerritory-246,
BritishSovereignBaseAreas-357,
FalklandIslands(IslasMalvinas)-500,
Gibraltar-350,
SaintHelena-290,
HongKong-852,
Macau-853,
FaroeIslands-298,
Greenland-299,
FrenchGuiana-594,
Guadeloupe-590,
Martinique-596,
Reunion-262,
Aruba-297,
NetherlandsAntilles-599,
Svalbard-47,
Ascension-247,
TristandaCunha-290,
PalestinianTerritories(GazaStripandWestBank)-970,
WesternSahara-212,
于 2012-10-29T15:51:17.700 に答える
0

別の実証済みの方法は、これに対して WebService を呼び出すことです。 http://www.webservicex.net/country.asmxの GetISD WebMethod を使用して、現在の場所の国を渡すことができます。

これにより、ユーザーがアプリにアクセスしている国の関連する ISD ID を確実に取得できます。

もう 1 つの方法は、すべての ISO の国を SQLite データベースに格納してから、現在の場所の国に基づいて検索を実行し、それぞれのエントリを表示することです。

ユーザーの現在の都市名を取得するには? を使って国名を探す方法CLLocationManagerです。

お役に立てれば、

ありがとう、ジガー

于 2012-10-29T07:33:21.597 に答える
0

迅速

  let callingCodes = ["AD":"376","AE":"971","AF":"93","AG":"1","AI":"1","AL":"355","AM":"374","AN":"599","AO":"244","AR":"54","AS":"1","AT":"43","AU":"61","AW":"297","AZ":"994",
                        "BA":"387","BB":"1","BD":"880","BE":"32","BF":"226","BG":"359","BH":"973","BI":"257","BJ":"229","BL":"590","BM":"1","BN":"673","BO":"591","BR":"55","BS":"1","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":"537","CZ":"420",
                        "DE":"49","DJ":"253","DK":"45","DM":"1","DO":"1","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":"1","GE":"995","GF":"594","GG":"44","GH":"233","GI":"350","GL":"299","GM":"220","GN":"224","GP":"590","GQ":"240","GR":"30","GS":"500","GT":"502","GU":"1","GW":"245","GY":"595",
                        "HK":"852","HN":"504","HR":"385","HT":"509","HU":"36","ID":"62","IE":"353",
                        "IL":"972","IM":"44","IN":"91","IO":"246","IQ":"964","IR":"98","IS":"354","IT":"39",
                        "JE":"44","JM":"1","JO":"962","JP":"81",
                        "KE":"254","KG":"996","KH":"855","KI":"686","KM":"269","KN":"1","KP":"850","KR":"82","KW":"965","KY":"345","KZ":"77",
                        "LA":"856","LB":"961","LC":"1","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":"590","MG":"261","MH":"692","MK":"389","ML":"223","MM":"95","MN":"976","MO":"853","MP":"1","MQ":"596","MR":"222","MS":"1","MT":"356","MU":"230","MV":"960","MW":"265","MX":"52","MY":"60","MZ":"258",
                        "NA":"264","NC":"687","NE":"227","NF":"672","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":"872","PR":"1","PS":"970","PT":"351","PW":"680","PY":"595",
                        "QA":"974",
                        "RE":"262","RO":"40","RS":"381","RU":"7","RW":"250",
                        "SA":"966","SB":"677","SC":"248","SD":"249","SE":"46","SG":"65","SH":"290","SI":"386","SJ":"47","SK":"421","SL":"232","SM":"378","SN":"221","SO":"252","SR":"597","ST":"239","SV":"503","SY":"963","SZ":"268",
                        "TC":"1","TD":"235","TG":"228","TH":"66","TJ":"992","TK":"690","TL":"670","TM":"993","TN":"216","TO":"676","TR":"90","TT":"1","TV":"688","TW":"886","TZ":"255",
                        "UA":"380","UG":"256","US":"1","UY":"598","UZ":"998",
                        "VA":"379","VC":"1","VE":"58","VG":"284","VI":"340","VN":"84","VU":"678",
                        "WF":"681","WS":"685",
                        "YE":"967","YT":"262",
                        "ZA":"27","ZM":"260","ZW":"263"]
于 2018-12-18T01:37:15.750 に答える
-1

国コードと呼び出しコードを含む NSDictionary を作成しました 。これを使用して、呼び出しコードを検索できます。

上記のコードと NSDictionary を使用すると、次のようになります...

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *callingCode = [dictCodes objectForKey:countryCode];
于 2012-11-23T20:24:16.447 に答える