如何在Swift iOS中获得国家电话代码?

前端之家收集整理的这篇文章主要介绍了如何在Swift iOS中获得国家电话代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展一个项目
我需要将选择的电话号码(哪个用户从手机联系人列表中选择)发送到服务器,格式如下:
国际代码,而无需3/0或 – plus_the数
所以我需要处理很多情况:数字没有国际代码,数字与零,数字与加号,数字与两个零..etc
问题是当我有一个本地电话号码前所未有的国家电话代码,如果设备有一个有效的SIM卡通过这个代码,我可以得到当前的国家名称(国家名称代码)
let networkInfo: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()
let ar = networkInfo.subscriberCellularProvider
if ar != nil {
if  let mcc = ar.mobileCountryCode {
    myInformation.countryCode = mcc
    }

那么我该如何获得国家电话代码

我建议的答案就是蛮力的方法
是列出所有的国家名称和其匹配的国家电话代码在字典中,并使用搜索功能,给我匹配的电话代码到一个特定的国家代码
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","AI","AG","54","AR","374","AM","297","AW","61","AU","43","AT","994","AZ","BS","973","BH","880","BD","BB","375","BY","32","BE","501","BZ","229","BJ","BM","975","BT","387","BA","267","BW","55","BR","246","IO","359","BG","226","BF","257","BI","855","KH","237","CM","CA","238","CV","345","KY","236","CF","235","TD","56","CL","86","CN","CX","57","CO","269","KM","242","CG","682","CK","506","CR","385","HR","53","CU","537","CY","420","CZ","45","DK","253","DJ","DM","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","GD","590","GP","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","39","IT","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","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","MP","47","NO","968","OM","92","PK","680","PW","507","PA","675","PG","PY","51","PE","63","PH","48","PL","351","PT","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","TT","216","TN","90","TR","993","TM","TC","688","TV","256","UG","380","UA","971","AE","44","GB","US","598","UY","998","UZ","678","VU","681","WF","967","YE","260","ZM","263","ZW","591","BO","673","BN","CC","243","CD","225","CI","FK","GG","379","VA","852","HK","98","IR","IM","JE","850","KP","82","KR","856","LA","218","LY","853","MO","389","MK","691","FM","373","MD","258","MZ","970","PS","872","PN","RE","7","RU","BL","290","SH","KN","LC","MF","508","PM","VC","239","ST","252","SO","SJ","963","SY","886","TW","255","TZ","670","TL","58","VE","84","VN","284","VG","340","VI","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 ""
    }
}

猜你在找的Swift相关文章