如何在Swift iOS中获取给定国家/地区名称的国家/地区电话代码?

我正在开发一个项目,我需要将选定的电话号码(已经从电话联系人列表中选择的用户)发送到服务器,格式为: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 } 

那么我怎样才能获得国家电话代码?

 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 "" } } 

我建议的答案就像蛮力方法! 是在字典中列出所有国家/地区名称及其匹配的国家/地区电话代码,并使用搜索function为我提供匹配的电话代码到特定的国家/地区代码

 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 "" } } 

我为它做了一个帮助课,我做了一个示例应用程序

  import Foundation public class Countries { // MARK: - var and let // MARK: - functions public static func getAllCountries() -> [Country] { var countries = [Country]() NSLocale.ISOCountryCodes().forEach { (isoCode) in guard let countryName = NSLocale.currentLocale().displayNameForKey(NSLocaleCountryCode, value: isoCode) else { return } if let countryInfo = countryInfoDictionary[isoCode] { let phoneExtension = countryInfo["phoneExtension"] as! String let isMain = countryInfo["isMain"] as! Bool countries.append(Country(name: countryName, phoneExtension: phoneExtension, countryCode: isoCode, isMain: isMain)) } else { countries.append(Country(name: countryName, phoneExtension: nil, countryCode: isoCode, isMain: nil)) } } return countries } public static func getCountriesByFirstLetter() -> [(String, [Country])] { let countries = getAllCountries() var countryDictionary = [String : [Country]]() var countryFirstLetterArray = [String]() countries.forEach { (country) in let letterIndex = country.name.startIndex.advancedBy(0) countryFirstLetterArray.append(String(country.name[letterIndex])) if countryFirstLetterArray.count == 249 { countryFirstLetterArray = Array(Set(countryFirstLetterArray)) countryFirstLetterArray.sortInPlace({ (firstString, secondString) -> Bool in firstString < secondString }) } } // countryFirstLetterArray.forEach { (letter) in countries.forEach({ (country) in let letterIndex = country.name.startIndex.advancedBy(0) let firsNameLetter = String(country.name[letterIndex]) if firsNameLetter == letter { if var countries = countryDictionary[letter] { countries.append(country) countryDictionary[letter] = countries } else { countryDictionary[letter] = [country] } } }) } // sorting let returnedCountries = countryDictionary.sort({$0.0 < $1.0}) return returnedCountries } public static func getCountriesWithPhone() -> [Country] { var countries = getCountriesWithPhoneCode() countries.sortInPlace({$0.name < $1.name}) return countries } public static func getCountriesByPhoneCode() -> [Country] { var countries = getCountriesWithPhoneCode() countries.sortInPlace({$0.phoneExtension! < $1.phoneExtension}) return countries } private static func getCountriesWithPhoneCode() -> [Country] { let countries = getAllCountries() var returnedCountries = [Country]() countries.forEach { (country) in if country.phoneExtension != nil { returnedCountries.append(country) } } return returnedCountries } } extension Countries { public static var countryInfoDictionary = ["AF" : ["phoneExtension" : "93", "isMain" : true], "AL" : ["phoneExtension" : "355", "isMain" : true], "DZ" : ["phoneExtension" : "213", "isMain" : true], "AS" : ["phoneExtension" : "1", "isMain" : false], "AD" : ["phoneExtension" : "376", "isMain" : true], "AO" :["phoneExtension" : "244", "isMain" : true], "AI" : ["phoneExtension" : "1", "isMain" : false], "AQ" : ["phoneExtension" : "672", "isMain" : true], "AG" : ["phoneExtension" : "1", "isMain" : false], "AR" : ["phoneExtension" : "54", "isMain" : true], "AM" : ["phoneExtension" : "374", "isMain" : true], "AW" : ["phoneExtension" : "297", "isMain" : true], "AU" : ["phoneExtension" : "61", "isMain" : true], "AT" : ["phoneExtension" : "43", "isMain" : true], "AZ": ["phoneExtension" : "994", "isMain" : true], "BS" : ["phoneExtension" : "1", "isMain" : false], "BH" : ["phoneExtension" : "973", "isMain": true], "BD" : ["phoneExtension" : "880", "isMain": true], "BB" : ["phoneExtension" : "1", "isMain": false], "BY" : ["phoneExtension" : "375", "isMain" : true], "BE" : ["phoneExtension": "32", "isMain": true], "BZ" : ["phoneExtension": "501", "isMain": true], "BJ" : ["phoneExtension" : "229", "isMain" : true], "BM" : ["phoneExtension" : "1", "isMain": false], "BT" : ["phoneExtension": "975", "isMain": true], "BO" : ["phoneExtension" : "591", "isMain": true], "BA" : ["phoneExtension" : "387", "isMain" : true], "BW" : ["phoneExtension" : "267", "isMain": true], "BR" : ["phoneExtension": "55", "isMain": true], "IO" : ["phoneExtension": "246", "isMain": true], "VG" : ["phoneExtension": "1", "isMain": false], "BN" : ["phoneExtension": "673", "isMain": true], "BG" : ["phoneExtension": "359", "isMain": true], "BF" :["phoneExtension": "226", "isMain": true], "BI" : ["phoneExtension": "257", "isMain": true], "KH" : ["phoneExtension": "855", "isMain": true], "CM" : ["phoneExtension": "237", "isMain": true], "CA" : ["phoneExtension": "1", "isMain": false], "CV" : ["phoneExtension" : "238", "isMain" : true], "KY" : ["phoneExtension" : "1", "isMain": false], "CF" : ["phoneExtension": "236", "isMain": true], "TD" : ["phoneExtension": "235", "isMain": true], "CL" : ["phoneExtension": "56", "isMain": true], "CN" : ["phoneExtension" : "86", "isMain": true], "CX" : ["phoneExtension" : "61", "isMain" : false], "CC" : ["phoneExtension" : "61", "isMain": false], "CO" : ["phoneExtension" : "57", "isMain": true], "KM" : ["phoneExtension": "269", "isMain": true], "CK" : ["phoneExtension": "682", "isMain": true], "CR" : ["phoneExtension" : "506", "isMain": true], "HR" : ["phoneExtension": "385", "isMain" : true], "CU" : ["phoneExtension": "53", "isMain": true], "CW" : ["phoneExtension": "599", "isMain": true], "CY" : ["phoneExtension" : "357", "isMain": true], "CZ" : ["phoneExtension": "420", "isMain": true], "CD" :["phoneExtension": "243", "isMain": true], "DK" : ["phoneExtension": "45", "isMain": true], "DJ" : ["phoneExtension" : "253", "isMain": true], "DM" : ["phoneExtension": "1", "isMain": false], "DO" : ["phoneExtension" : "1", "isMain": false], "TL" : ["phoneExtension": "670", "isMain": true], "EC" : ["phoneExtension" : "593", "isMain": true], "EG" : ["phoneExtension": "20", "isMain": true], "SV" : ["phoneExtension" : "503", "isMain" : true], "GQ" : ["phoneExtension" : "240", "isMain": true], "ER" : ["phoneExtension" : "291", "isMain": true], "EE" : ["phoneExtension" : "372", "isMain": true], "ET" : ["phoneExtension" : "251", "isMain": true], "FK" : ["phoneExtension" : "500", "isMain": true], "FO" : ["phoneExtension": "298", "isMain": true], "FJ" : ["phoneExtension": "679", "isMain": true], "FI" : ["phoneExtension" : "358", "isMain": true], "FR" : ["phoneExtension" : "33", "isMain" : true], "PF" : ["phoneExtension" : "689", "isMain": true], "GA" : ["phoneExtension" : "241", "isMain": true], "GM" : ["phoneExtension" : "220", "isMain" : true], "GE" : ["phoneExtension": "995", "isMain": true], "DE" : ["phoneExtension" : "49", "isMain": true], "GH" : ["phoneExtension" : "233", "isMain": true], "GI" :["phoneExtension" : "350", "isMain": true], "GR" : ["phoneExtension": "30", "isMain": true], "GL" : ["phoneExtension": "299", "isMain": true], "GD" : ["phoneExtension": "1", "isMain": false], "GU" : ["phoneExtension": "1", "isMain": false], "GT" : ["phoneExtension": "502", "isMain": true], "GG" : ["phoneExtension": "44", "isMain": false], "GN" : ["phoneExtension": "224", "isMain": true], "GW" : ["phoneExtension" : "245", "isMain": true], "GY" : ["phoneExtension": "592", "isMain": true], "HT" : ["phoneExtension": "509", "isMain": true], "HN" : ["phoneExtension": "504", "isMain": true], "HK" : ["phoneExtension": "652", "isMain": true], "HU" : ["phoneExtension": "36", "isMain": true], "IS" :["phoneExtension": "354", "isMain": true], "IN" : ["phoneExtension": "91", "isMain": true], "ID" :["phoneExtension": "62", "isMain": true], "IR" : ["phoneExtension": "98", "isMain": true], "IQ" : ["phoneExtension" : "964", "isMain" : true], "IE" : ["phoneExtension": "353", "isMain": true], "IM" : ["phoneExtension": "44", "isMain": false], "IL" : ["phoneExtension": "972", "isMain": true], "IT" : ["phoneExtension": "39", "isMain": true], "CI" : ["phoneExtension": "225", "isMain": true], "JM" : ["phoneExtension": "1", "isMain": false], "JP" : ["phoneExtension": "81", "isMain": true], "JE" : ["phoneExtension": "44", "isMain": false], "JO" : ["phoneExtension" : "962", "isMain": true], "KZ" : ["phoneExtension" : "7", "isMain": false], "KE" : ["phoneExtension" : "254", "isMain": true], "KI" : ["phoneExtension" : "686", "isMain": true], "XK" : ["phoneExtension": "383", "isMain": true], "KW" : ["phoneExtension": "965", "isMain": true], "KG" : ["phoneExtension": "996", "isMain": true], "LA" : ["phoneExtension": "856", "isMain": true], "LV" : ["phoneExtension": "371", "isMain": true], "LB" : ["phoneExtension": "961", "isMain": true], "LS" : ["phoneExtension": "266", "isMain": true], "LR" : ["phoneExtension": "231", "isMain": true], "LY" : ["phoneExtension": "218", "isMain": true], "LI" : ["phoneExtension": "423", "isMain": true], "LT" : ["phoneExtension": "370", "isMain": true], "LU" : ["phoneExtension": "352", "isMain": true], "MO" : ["phoneExtension": "853", "isMain": true], "MK" : ["phoneExtension": "389", "isMain": true], "MG" : ["phoneExtension": "261", "isMain": true], "MW" : ["phoneExtension": "265", "isMain": true], "MY" : ["phoneExtension": "60", "isMain": true], "MV" : ["phoneExtension": "960", "isMain": true], "ML" : ["phoneExtension": "223", "isMain": true], "MT" : ["phoneExtension": "356", "isMain": true], "MH" : ["phoneExtension": "692", "isMain": true], "MR" : ["phoneExtension": "222", "isMain": true], "MU" : ["phoneExtension": "230", "isMain": true], "YT" : ["phoneExtension": "262", "isMain": true], "MX" : ["phoneExtension": "52", "isMain": true], "FM" : ["phoneExtension": "691", "isMain": true], "MD" : ["phoneExtension": "373", "isMain": true], "MC" : ["phoneExtension": "377", "isMain": true], "MN" : ["phoneExtension": "976", "isMain": true], "ME" : ["phoneExtension": "382", "isMain": true], "MS" : ["phoneExtension": "1", "isMain": false], "MA" : ["phoneExtension": "212", "isMain": true], "MZ" : ["phoneExtension": "258", "isMain": true], "MM" : ["phoneExtension": "95", "isMain": true], "NA": ["phoneExtension": "264", "isMain": true], "NR" : ["phoneExtension": "674", "isMain": true], "NP" : ["phoneExtension": "977", "isMain": true], "NL" : ["phoneExtension": "31", "isMain": true], "AN" : ["phoneExtension": "599", "isMain": true], "NC" : ["phoneExtension": "687", "isMain": true], "NZ" : ["phoneExtension": "64", "isMain": true], "NI" : ["phoneExtension": "505", "isMain": true], "NE" : ["phoneExtension": "227", "isMain": true], "NG" : ["phoneExtension": "234", "isMain": true], "NU" : ["phoneExtension": "683", "isMain": true], "KP" : ["phoneExtension": "850", "isMain": true], "MP" : ["phoneExtension": "1", "isMain": false], "NO" : ["phoneExtension": "47", "isMain": true], "OM" : ["phoneExtension": "968", "isMain": true], "PK" : ["phoneExtension": "92", "isMain": true], "PW" : ["phoneExtension": "680", "isMain": true], "PS" : ["phoneExtension": "970", "isMain": true], "PA" : ["phoneExtension": "507", "isMain": true], "PG" : ["phoneExtension": "675", "isMain": true], "PY" : ["phoneExtension": "595", "isMain": true], "PE" : ["phoneExtension": "51", "isMain": true], "PH" : ["phoneExtension": "63", "isMain": true], "PN" :["phoneExtension": "64", "isMain": false], "PL" : ["phoneExtension": "48", "isMain": true], "PT" : ["phoneExtension": "351", "isMain": true], "PR" : ["phoneExtension": "1", "isMain": false], "QA" : ["phoneExtension": "974", "isMain": true], "CG" : ["phoneExtension": "242", "isMain": true], "RE" : ["phoneExtension": "262", "isMain": false], "RO" : ["phoneExtension": "40", "isMain": true], "RU" : ["phoneExtension": "7", "isMain": true], "RW" : ["phoneExtension": "250", "isMain": true], "BL" : ["phoneExtension": "590", "isMain": true], "SH": ["phoneExtension": "290", "isMain": true], "KN" : ["phoneExtension": "1", "isMain": false], "LC" : ["phoneExtension": "1", "isMain": false], "MF" : ["phoneExtension": "590", "isMain": false], "PM" : ["phoneExtension": "508", "isMain": true], "VC": ["phoneExtension": "1", "isMain": false], "WS" : ["phoneExtension": "685", "isMain": true], "SM" : ["phoneExtension": "378", "isMain": true], "ST" : ["phoneExtension": "239", "isMain": true], "SA" : ["phoneExtension": "966", "isMain": true], "SN" : ["phoneExtension": "221", "isMain": true], "RS" : ["phoneExtension": "381", "isMain": true], "SC" : ["phoneExtension": "248", "isMain": true], "SL" : ["phoneExtension": "232", "isMain": true], "SG" : ["phoneExtension": "65", "isMain": true], "SX" : ["phoneExtension": "1", "isMain": false], "SK" : ["phoneExtension": "421", "isMain": true], "SI" : ["phoneExtension": "386", "isMain": true], "SB" : ["phoneExtension": "677", "isMain": true], "SO" : ["phoneExtension": "252", "isMain": true], "ZA" : ["phoneExtension": "27", "isMain": true], "KR" : ["phoneExtension": "82", "isMain": true], "SS" : ["phoneExtension": "211", "isMain": true], "ES" : ["phoneExtension": "34", "isMain": true], "LK" : ["phoneExtension": "94", "isMain": true], "SD" : ["phoneExtension": "249", "isMain": true], "SR" : ["phoneExtension": "597", "isMain": true], "SJ" : ["phoneExtension": "47", "isMain": true], "SZ" : ["phoneExtension": "268", "isMain": true], "SE" : ["phoneExtension": "46", "isMain": true], "CH" : ["phoneExtension": "41", "isMain": true], "SY" : ["phoneExtension": "963", "isMain": true], "TW" : ["phoneExtension": "886", "isMain": true], "TJ" : ["phoneExtension": "992", "isMain": true], "TZ" : ["phoneExtension": "255", "isMain": true], "TH" : ["phoneExtension": "66", "isMain": true], "TG": ["phoneExtension": "228", "isMain": true], "TK" : ["phoneExtension": "690", "isMain": true], "TO" : ["phoneExtension": "676", "isMain": true], "TT" :["phoneExtension": "1", "isMain": false], "TN" : ["phoneExtension": "216", "isMain": true], "TR" : ["phoneExtension": "90", "isMain": true], "TM" : ["phoneExtension": "993", "isMain": true], "TC" : ["phoneExtension": "1", "isMain": false], "TV" : ["phoneExtension": "688", "isMain": true], "VI" : ["phoneExtension": "1", "isMain": false], "UG" : ["phoneExtension": "256", "isMain": true], "UA" : ["phoneExtension": "380", "isMain": true], "AE": ["phoneExtension": "971", "isMain": true], "GB" : ["phoneExtension": "44", "isMain": true], "US" : ["phoneExtension": "1", "isMain": true], "UY" : ["phoneExtension": "598", "isMain": true], "UZ" : ["phoneExtension": "998", "isMain": true], "VU" : ["phoneExtension": "678", "isMain": true], "VA" : ["phoneExtension": "379", "isMain": true], "VE" : ["phoneExtension": "58", "isMain": true], "VN" : ["phoneExtension": "84", "isMain": true], "WF" : ["phoneExtension": "681", "isMain": true], "EH" : ["phoneExtension": "212", "isMain": true], "YE" : ["phoneExtension": "967", "isMain": true], "ZM" : ["phoneExtension": "260", "isMain": true], "ZW" : ["phoneExtension": "263", "isMain": true]] } public class Country { public var name: String public var phoneExtension: String? public var countryCode: String public var isMain: Bool? public init(name: String, phoneExtension: String?, countryCode: String, isMain: Bool?) { self.name = name self.phoneExtension = phoneExtension self.countryCode = countryCode self.isMain = isMain } } 

据我所知,没有内置的方法来获取此信息。 但是,您可以将数据存储在应用程序中,并根据刚刚获得的国家/地区代码进行查找。

维基百科上有已知代码的完整列表

您可以将它们存储为长.plist文件,然后可以将其加载并查询为国家/地区代码键入的字典。

让phoneUtil = NBPhoneNumberUtil()

  if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String { } let device = Locale.current.regionCode do { let phoneNumber: NBPhoneNumber = try phoneUtil.parse(withPhoneCarrierRegion:phone_txt.text) let code:String = try phoneUtil.format(phoneNumber, numberFormat: .E164) let national:String = try phoneUtil.format(phoneNumber, numberFormat: .NATIONAL) let international:String = try phoneUtil.format(phoneNumber, numberFormat: .INTERNATIONAL) countryname_lbl.text = phoneUtil.getRegionCode(forCountryCode:phoneNumber.countryCode)! let numberrr = phoneUtil.getNationalSignificantNumber(phoneNumber) print("number::",numberrr) let valid = phoneUtil.isValidNumber(phoneNumber) print("valid:",valid) code_lbl.text = code number_lbl.text = international national_lbl.text = national } catch let error as NSError { print(error.localizedDescription) } }