Ala*_*laa 8 iphone mobile-country-code ios swift
我正在开发一个项目,我需要将选定的电话号码(已经从电话联系人列表中选择的用户)发送到服务器,格式为:international-code-without-zeros-or-plus_the-number所以我需要处理很多案例:没有国际代码的号码,带零的号码,带加号的号码,带有两个零的号码..问题是当我有一个前所未有的国家电话号码的本地电话号码时,我可以获得当前的国家名称(国家/地区名称代码)如果设备通过此代码拥有有效的SIM卡
let networkInfo: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()
let ar = networkInfo.subscriberCellularProvider
if ar != nil {
if let mcc = ar.mobileCountryCode {
myInformation.countryCode = mcc
}
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能获得国家电话代码?
小智 13
class func getCountryPhonceCode (_ country : String) -> String
{
var countryDictionary = ["AF":"93",
"AL":"355",
"DZ":"213",
"AS":"1",
"AD":"376",
"AO":"244",
"AI":"1",
"AG":"1",
"AR":"54",
"AM":"374",
"AW":"297",
"AU":"61",
"AT":"43",
"AZ":"994",
"BS":"1",
"BH":"973",
"BD":"880",
"BB":"1",
"BY":"375",
"BE":"32",
"BZ":"501",
"BJ":"229",
"BM":"1",
"BT":"975",
"BA":"387",
"BW":"267",
"BR":"55",
"IO":"246",
"BG":"359",
"BF":"226",
"BI":"257",
"KH":"855",
"CM":"237",
"CA":"1",
"CV":"238",
"KY":"345",
"CF":"236",
"TD":"235",
"CL":"56",
"CN":"86",
"CX":"61",
"CO":"57",
"KM":"269",
"CG":"242",
"CK":"682",
"CR":"506",
"HR":"385",
"CU":"53",
"CY":"537",
"CZ":"420",
"DK":"45",
"DJ":"253",
"DM":"1",
"DO":"1",
"EC":"593",
"EG":"20",
"SV":"503",
"GQ":"240",
"ER":"291",
"EE":"372",
"ET":"251",
"FO":"298",
"FJ":"679",
"FI":"358",
"FR":"33",
"GF":"594",
"PF":"689",
"GA":"241",
"GM":"220",
"GE":"995",
"DE":"49",
"GH":"233",
"GI":"350",
"GR":"30",
"GL":"299",
"GD":"1",
"GP":"590",
"GU":"1",
"GT":"502",
"GN":"224",
"GW":"245",
"GY":"595",
"HT":"509",
"HN":"504",
"HU":"36",
"IS":"354",
"IN":"91",
"ID":"62",
"IQ":"964",
"IE":"353",
"IL":"972",
"IT":"39",
"JM":"1",
"JP":"81",
"JO":"962",
"KZ":"77",
"KE":"254",
"KI":"686",
"KW":"965",
"KG":"996",
"LV":"371",
"LB":"961",
"LS":"266",
"LR":"231",
"LI":"423",
"LT":"370",
"LU":"352",
"MG":"261",
"MW":"265",
"MY":"60",
"MV":"960",
"ML":"223",
"MT":"356",
"MH":"692",
"MQ":"596",
"MR":"222",
"MU":"230",
"YT":"262",
"MX":"52",
"MC":"377",
"MN":"976",
"ME":"382",
"MS":"1",
"MA":"212",
"MM":"95",
"NA":"264",
"NR":"674",
"NP":"977",
"NL":"31",
"AN":"599",
"NC":"687",
"NZ":"64",
"NI":"505",
"NE":"227",
"NG":"234",
"NU":"683",
"NF":"672",
"MP":"1",
"NO":"47",
"OM":"968",
"PK":"92",
"PW":"680",
"PA":"507",
"PG":"675",
"PY":"595",
"PE":"51",
"PH":"63",
"PL":"48",
"PT":"351",
"PR":"1",
"QA":"974",
"RO":"40",
"RW":"250",
"WS":"685",
"SM":"378",
"SA":"966",
"SN":"221",
"RS":"381",
"SC":"248",
"SL":"232",
"SG":"65",
"SK":"421",
"SI":"386",
"SB":"677",
"ZA":"27",
"GS":"500",
"ES":"34",
"LK":"94",
"SD":"249",
"SR":"597",
"SZ":"268",
"SE":"46",
"CH":"41",
"TJ":"992",
"TH":"66",
"TG":"228",
"TK":"690",
"TO":"676",
"TT":"1",
"TN":"216",
"TR":"90",
"TM":"993",
"TC":"1",
"TV":"688",
"UG":"256",
"UA":"380",
"AE":"971",
"GB":"44",
"US":"1",
"UY":"598",
"UZ":"998",
"VU":"678",
"WF":"681",
"YE":"967",
"ZM":"260",
"ZW":"263",
"BO":"591",
"BN":"673",
"CC":"61",
"CD":"243",
"CI":"225",
"FK":"500",
"GG":"44",
"VA":"379",
"HK":"852",
"IR":"98",
"IM":"44",
"JE":"44",
"KP":"850",
"KR":"82",
"LA":"856",
"LY":"218",
"MO":"853",
"MK":"389",
"FM":"691",
"MD":"373",
"MZ":"258",
"PS":"970",
"PN":"872",
"RE":"262",
"RU":"7",
"BL":"590",
"SH":"290",
"KN":"1",
"LC":"1",
"MF":"590",
"PM":"508",
"VC":"1",
"ST":"239",
"SO":"252",
"SJ":"47",
"SY":"963",
"TW":"886",
"TZ":"255",
"TL":"670",
"VE":"58",
"VN":"84",
"VG":"284",
"VI":"340"]
if countryDictionary[country] != nil {
return countryDictionary[country]!
}
else {
return ""
}
}
Run Code Online (Sandbox Code Playgroud)
Ala*_*laa 12
我建议的答案就像蛮力方法!是在字典中列出所有国家/地区名称及其匹配的国家/地区电话代码,并使用搜索功能为我提供匹配的电话代码到特定的国家/地区代码
func getCountryPhonceCode (country : String) -> String
{
if count(country) == 2
{
let x : [String] = ["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"]
var keys = [String]()
var values = [String]()
let whitespace = NSCharacterSet.decimalDigitCharacterSet()
//let range = phrase.rangeOfCharacterFromSet(whitespace)
for i in x {
// range will be nil if no whitespace is found
if (i.rangeOfCharacterFromSet(whitespace) != nil) {
values.append(i)
}
else {
keys.append(i)
}
}
var countryCodeListDict = NSDictionary(objects: values as [String], forKeys: keys as [String])
if let t: AnyObject = countryCodeListDict[country] {
return countryCodeListDict[country] as! String
} else
{
return ""
}
}
else
{
return ""
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15533 次 |
| 最近记录: |