11

私は、選択した電話番号 (ユーザーが電話の連絡先リストから既に選択した電話番号) を次の形式でサーバーに送信する必要があるプロジェクトに取り組んでいます: international-code-without-zeros-or-plus_the-number なので、多くを処理する必要がありますケース : 国際コードのない番号、ゼロの付いた番号、プラスの付いた番号、ゼロが 2 つある番号..など 問題は、国の電話コードでは前例のないローカルの電話番号を持っている場合、現在の国名 (国名コード) を取得できた場合です。このコードを介してデバイスに有効な SIM カードがある場合

let networkInfo: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()
let ar = networkInfo.subscriberCellularProvider
if ar != nil {
if  let mcc = ar.mobileCountryCode {
    myInformation.countryCode = mcc
    }

それでは、どうすれば国の電話番号を取得できますか??

4

6 に答える 6

23
    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 let countryCode = countryDictionary[country] {
                return countryCode
            }
            return "" 
        }
于 2016-09-14T14:50:42.310 に答える
13

私の提案する答えは、力ずくの方法のようなものです! すべての国名とそれに一致する国の電話コードを辞書にリストし、特定の国コードに一致する電話コードを提供する検索機能を使用することです

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 ""
    }
}
于 2015-08-09T12:18:30.003 に答える
1

私の知る限り、この情報を取得する組み込みの方法はありません。ただし、データをアプリケーションに保存し、取得した国コードに基づいて検索することはできます。

既知のコードの完全なリストはウィキペディアにあります

それらを長い .plist ファイルとして保存し、それを読み込んで、国コードをキーとする辞書としてクエリを実行できます。

于 2015-08-09T12:16:47.370 に答える