2017-06-29 98 views
1

我是新與快捷,我要去跟電話代碼示例+1或+92國家的名單,我試圖打印我們有:swift 3國家列表和電話代碼?

 let networkInfo = CTTelephonyNetworkInfo() 
     let carrier = networkInfo.subscriberCellularProvider 
     let phoneCode = carrier?.mobileNetworkCode 

print(phoneCode) 

     let countryCode = NSLocale.isoCountryCodes 
     for country in countryCode { 
      print(country) 


     } 

phoneCode輸出這是錯誤的它應該是+961country的結果是ios名稱2,示例ZA,YT等如何獲取完整的國家名稱?我應該使用自定義JSON!

回答

3

請用[country:code]試着字典,以得到國家和國家的電話代碼。

class CountryPhoneCodeAndName: NSObject { 
    var countryWithCode = [CountryNameWithCode]() 

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

    func getCountryName() { 
     // Sorting all keys 
     let keys = countryDictionary.keys 
     let keysValue = keys.sorted { (first, second) -> Bool in 
      let key1: String = first 
      let key2: String = second 
      let result = key1.compare(key2) == .orderedAscending 
      return result 

     } 
     print(keysValue) 

     for key in keysValue{ 
      let countryKeyValue = CountryNameWithCode() 
      print(countryDictionary[key] ?? "not") 
      countryKeyValue.countryCode = countryDictionary[key]! 
      countryKeyValue.countryName = Locale.current.localizedString(forRegionCode: key)! 
      print(Locale.current.localizedString(forRegionCode: key)!) 
      countryWithCode.append(countryKeyValue) 
     } 
    } 

    class CountryNameWithCode: NSObject { 
    var countryName = "" 
    var countryCode = "" 

    } 
} 
3

你可以得到完整的國名與:

let networkInformation = CTTelephonyNetworkInfo() 

if let carrier = networkInformation.subscriberCellularProvider { 
    print("phone code:" + carrier.mobileNetworkCode!) 

    print("ISO country code: " + carrier.isoCountryCode!) 

    // Convert ISO country code to full country name 
    let currentLocale = NSLocale.init(localeIdentifier: NSLocale.current.identifier) 
    let fullCountryName = currentLocale.displayName(forKey: NSLocale.Key.countryCode, value: carrier.isoCountryCode!) 
    print(fullCountryName) 
} 

而對於國字頭的號碼,我認爲最好的方法是使用自定義詞典與[國家:代碼]值。