I did it in this simple way:
struct CountryCodeCategory {
let id: Int
let name: String
let countries: [CountryCode]
}
struct CountryCode {
let id: Int
let code: String
let name: String
let categoryId: Int
}
class CountryCodeList{
let categories = [
CountryCodeCategory(id: 0, name: "A", countries: [
CountryCode(id: 0, code: "+7 840", name: "Abkhazia", categoryId: 0),
CountryCode(id: 1, code: "+93", name: "Afghanistan", categoryId: 0),
CountryCode(id: 2, code: "+355", name: "Albania", categoryId: 0),
CountryCode(id: 3, code: "+213", name: "Algeria", categoryId: 0),
CountryCode(id: 4, code: "+1 684", name: "American Samoa", categoryId: 0),
CountryCode(id: 5, code: "+376", name: "Andorra", categoryId: 0),
CountryCode(id: 6, code: "+244", name: "Angola", categoryId: 0),
CountryCode(id: 7, code: "+1 264", name: "Anguilla", categoryId: 0),
CountryCode(id: 8, code: "+1 268", name: "Antigua and Barbuda", categoryId: 0),
CountryCode(id: 9, code: "+54", name: "Argentina", categoryId: 0),
CountryCode(id: 10, code: "+374", name: "Armenia", categoryId: 0),
CountryCode(id: 11, code: "+297", name: "Aruba", categoryId: 0),
CountryCode(id: 12, code: "+247", name: "Ascension", categoryId: 0),
CountryCode(id: 13, code: "+61", name: "Australia", categoryId: 0),
CountryCode(id: 14, code: "+672", name: "Australian External Territories", categoryId: 0),
CountryCode(id: 15, code: "+43", name: "Austria", categoryId: 0),
CountryCode(id: 16, code: "+994", name: "Azerbaijan", categoryId: 0),
]),
CountryCodeCategory(id: 1, name: "B", countries: [
CountryCode(id: 17, code: "+1 242", name: "Bahamas", categoryId: 1),
CountryCode(id: 18, code: "+973", name: "Bahrain", categoryId: 1),
CountryCode(id: 19, code: "+880", name: "Bangladesh", categoryId: 1),
CountryCode(id: 20, code: "+1 246", name: "Barbados", categoryId: 1),
CountryCode(id: 21, code: "+1 268", name: "Barbuda", categoryId: 1),
CountryCode(id: 22, code: "+375", name: "Belarus", categoryId: 1),
CountryCode(id: 23, code: "+32", name: "Belgium", categoryId: 1),
CountryCode(id: 24, code: "+501", name: "Belize", categoryId: 1),
CountryCode(id: 25, code: "+229", name: "Benin", categoryId: 1),
CountryCode(id: 26, code: "+1 441", name: "Bermuda", categoryId: 1),
CountryCode(id: 27, code: "+975", name: "Bhutan", categoryId: 1),
CountryCode(id: 28, code: "+591", name: "Bolivia", categoryId: 1),
CountryCode(id: 29, code: "+387", name: "Bosnia and Herzegovina", categoryId: 1),
CountryCode(id: 30, code: "+267", name: "Botswana", categoryId: 1),
CountryCode(id: 31, code: "+55", name: "Brazil", categoryId: 1),
CountryCode(id: 32, code: "+246", name: "British Indian Ocean Territory", categoryId: 1),
CountryCode(id: 33, code: "+1 284", name: "British Virgin Islands", categoryId: 1),
CountryCode(id: 34, code: "+673", name: "Brunei", categoryId: 1),
CountryCode(id: 35, code: "+359", name: "Bulgaria", categoryId: 1),
CountryCode(id: 36, code: "+226", name: "Burkina Faso", categoryId: 1),
CountryCode(id: 37, code: "+257", name: "Burundi", categoryId: 1),
]),
CountryCodeCategory(id: 2, name: "C", countries: [
CountryCode(id: 38, code: "+855", name: "Cambodia", categoryId: 2),
CountryCode(id: 39, code: "+237", name: "Cameroon", categoryId: 2),
CountryCode(id: 40, code: "+1", name: "Canada", categoryId: 2),
CountryCode(id: 41, code: "+238", name: "Cape Verde", categoryId: 2),
CountryCode(id: 42, code: "+ 345", name: "Cayman Islands", categoryId: 2),
CountryCode(id: 43, code: "+236", name: "Central African Republic", categoryId: 2),
CountryCode(id: 44, code: "+235", name: "Chad", categoryId: 2),
CountryCode(id: 45, code: "+56", name: "Chile", categoryId: 2),
CountryCode(id: 46, code: "+86", name: "China", categoryId: 2),
CountryCode(id: 47, code: "+61", name: "Christmas Island", categoryId: 2),
CountryCode(id: 48, code: "+61", name: "Cocos-Keeling Islands", categoryId: 2),
CountryCode(id: 49, code: "+57", name: "Colombia", categoryId: 2),
CountryCode(id: 50, code: "+269", name: "Comoros", categoryId: 2),
CountryCode(id: 51, code: "+242", name: "Congo", categoryId: 2),
CountryCode(id: 52, code: "+243", name: "Congo, Dem. Rep. of (Zaire)", categoryId: 2),
CountryCode(id: 53, code: "+682", name: "Cook Islands", categoryId: 2),
CountryCode(id: 54, code: "+506", name: "Costa Rica", categoryId: 2),
CountryCode(id: 55, code: "+385", name: "Croatia", categoryId: 2),
CountryCode(id: 56, code: "+53", name: "Cuba", categoryId: 2),
CountryCode(id: 57, code: "+599", name: "Curacao", categoryId: 2),
CountryCode(id: 58, code: "+537", name: "Cyprus", categoryId: 2),
CountryCode(id: 59, code: "+420", name: "Czech Republic", categoryId: 2),
]),
CountryCodeCategory(id: 3, name: "D", countries: [
CountryCode(id: 60, code: "+45", name: "Denmark", categoryId: 3),
CountryCode(id: 61, code: "+246", name: "Diego Garcia", categoryId: 3),
CountryCode(id: 62, code: "+253", name: "Djibouti", categoryId: 3),
CountryCode(id: 63, code: "+1 767", name: "Dominica", categoryId: 3),
CountryCode(id: 64, code: "+1 809", name: "Dominican Republic", categoryId: 3),
]),
CountryCodeCategory(id: 4, name: "E", countries: [
CountryCode(id: 65, code: "+670", name: "East Timor", categoryId: 4),
CountryCode(id: 66, code: "+56", name: "Easter Island", categoryId: 4),
CountryCode(id: 67, code: "+593", name: "Ecuador", categoryId: 4),
CountryCode(id: 68, code: "+20", name: "Egypt", categoryId: 4),
CountryCode(id: 69, code: "+503", name: "El Salvador", categoryId: 4),
CountryCode(id: 70, code: "+240", name: "Equatorial Guinea", categoryId: 4),
CountryCode(id: 71, code: "+291", name: "Eritrea", categoryId: 4),
CountryCode(id: 72, code: "+372", name: "Estonia", categoryId: 4),
CountryCode(id: 73, code: "+251", name: "Ethiopia", categoryId: 4),
]),
CountryCodeCategory(id: 5, name: "F", countries: [
CountryCode(id: 74, code: "+500", name: "Falkland Islands", categoryId: 5),
CountryCode(id: 75, code: "+298", name: "Faroe Islands", categoryId: 5),
CountryCode(id: 76, code: "+679", name: "Fiji", categoryId: 5),
CountryCode(id: 77, code: "+358", name: "Finland", categoryId: 5),
CountryCode(id: 78, code: "+33", name: "France", categoryId: 5),
CountryCode(id: 79, code: "+596", name: "French Antilles", categoryId: 5),
CountryCode(id: 80, code: "+594", name: "French Guiana", categoryId: 5),
CountryCode(id: 81, code: "+689", name: "French Polynesia", categoryId: 5),
]),
CountryCodeCategory(id: 6, name: "G", countries: [
CountryCode(id: 82, code: "+241", name: "Gabon", categoryId: 6),
CountryCode(id: 83, code: "+220", name: "Gambia", categoryId: 6),
CountryCode(id: 84, code: "+995", name: "Georgia", categoryId: 6),
CountryCode(id: 85, code: "+49", name: "Germany", categoryId: 6),
CountryCode(id: 86, code: "+233", name: "Ghana", categoryId: 6),
CountryCode(id: 87, code: "+350", name: "Gibraltar", categoryId: 6),
CountryCode(id: 88, code: "+30", name: "Greece", categoryId: 6),
CountryCode(id: 89, code: "+299", name: "Greenland", categoryId: 6),
CountryCode(id: 90, code: "+1 473", name: "Grenada", categoryId: 6),
CountryCode(id: 91, code: "+590", name: "Guadeloupe", categoryId: 6),
CountryCode(id: 92, code: "+1 671", name: "Guam", categoryId: 6),
CountryCode(id: 93, code: "+502", name: "Guatemala", categoryId: 6),
CountryCode(id: 94, code: "+224", name: "Guinea", categoryId: 6),
CountryCode(id: 95, code: "+245", name: "Guinea-Bissau", categoryId: 6),
CountryCode(id: 96, code: "+595", name: "Guyana", categoryId: 6),
]),
CountryCodeCategory(id: 7, name: "H", countries: [
CountryCode(id: 97, code: "+509", name: "Haiti", categoryId: 7),
CountryCode(id: 98, code: "+504", name: "Honduras", categoryId: 7),
CountryCode(id: 99, code: "+852", name: "Hong Kong SAR China", categoryId: 7),
CountryCode(id: 100, code: "+36", name: "Hungary", categoryId: 7),
]),
CountryCodeCategory(id: 8, name: "I", countries: [
CountryCode(id: 101, code: "+354", name: "Iceland", categoryId: 8),
CountryCode(id: 102, code: "+91", name: "India", categoryId: 8),
CountryCode(id: 103, code: "+62", name: "Indonesia", categoryId: 8),
CountryCode(id: 104, code: "+98", name: "Iran", categoryId: 8),
CountryCode(id: 105, code: "+964", name: "Iraq", categoryId: 8),
CountryCode(id: 106, code: "+353", name: "Ireland", categoryId: 8),
CountryCode(id: 107, code: "+972", name: "Israel", categoryId: 8),
CountryCode(id: 108, code: "+39", name: "Italy", categoryId: 8),
CountryCode(id: 109, code: "+225", name: "Ivory Coast", categoryId: 8),
]),
CountryCodeCategory(id: 9, name: "J", countries: [
CountryCode(id: 110, code: "+1 876", name: "Jamaica", categoryId: 9),
CountryCode(id: 111, code: "+81", name: "Japan", categoryId: 9),
CountryCode(id: 112, code: "+962", name: "Jordan", categoryId: 9),
]),
CountryCodeCategory(id: 10, name: "K", countries: [
CountryCode(id: 113, code: "+7 7", name: "Kazakhstan", categoryId: 10),
CountryCode(id: 114, code: "+254", name: "Kenya", categoryId: 10),
CountryCode(id: 115, code: "+686", name: "Kiribati", categoryId: 10),
CountryCode(id: 116, code: "+965", name: "Kuwait", categoryId: 10),
CountryCode(id: 117, code: "+996", name: "Kyrgyzstan", categoryId: 10),
]),
CountryCodeCategory(id: 11, name: "L", countries: [
CountryCode(id: 118, code: "+856", name: "Laos", categoryId: 11),
CountryCode(id: 119, code: "+371", name: "Latvia", categoryId: 11),
CountryCode(id: 120, code: "+961", name: "Lebanon", categoryId: 11),
CountryCode(id: 121, code: "+266", name: "Lesotho", categoryId: 11),
CountryCode(id: 122, code: "+231", name: "Liberia", categoryId: 11),
CountryCode(id: 123, code: "+218", name: "Libya", categoryId: 11),
CountryCode(id: 124, code: "+423", name: "Liechtenstein", categoryId: 11),
CountryCode(id: 125, code: "+370", name: "Lithuania", categoryId: 11),
CountryCode(id: 126, code: "+352", name: "Luxembourg", categoryId: 11),
]),
CountryCodeCategory(id: 12, name: "M", countries: [
CountryCode(id: 127, code: "+853", name: "Macau SAR China", categoryId: 12),
CountryCode(id: 128, code: "+389", name: "Macedonia", categoryId: 12),
CountryCode(id: 129, code: "+261", name: "Madagascar", categoryId: 12),
CountryCode(id: 130, code: "+265", name: "Malawi", categoryId: 12),
CountryCode(id: 131, code: "+60", name: "Malaysia", categoryId: 12),
CountryCode(id: 132, code: "+960", name: "Maldives", categoryId: 12),
CountryCode(id: 133, code: "+223", name: "Mali", categoryId: 12),
CountryCode(id: 134, code: "+356", name: "Malta", categoryId: 12),
CountryCode(id: 135, code: "+692", name: "Marshall Islands", categoryId: 12),
CountryCode(id: 136, code: "+596", name: "Martinique", categoryId: 12),
CountryCode(id: 137, code: "+222", name: "Mauritania", categoryId: 12),
CountryCode(id: 138, code: "+230", name: "Mauritius", categoryId: 12),
CountryCode(id: 139, code: "+262", name: "Mayotte", categoryId: 12),
CountryCode(id: 140, code: "+52", name: "Mexico", categoryId: 12),
CountryCode(id: 141, code: "+691", name: "Micronesia", categoryId: 12),
CountryCode(id: 142, code: "+1 808", name: "Midway Island", categoryId: 12),
CountryCode(id: 143, code: "+373", name: "Moldova", categoryId: 12),
CountryCode(id: 144, code: "+377", name: "Monaco", categoryId: 12),
CountryCode(id: 145, code: "+976", name: "Mongolia", categoryId: 12),
CountryCode(id: 146, code: "+382", name: "Montenegro", categoryId: 12),
CountryCode(id: 147, code: "+1664", name: "Montserrat", categoryId: 12),
CountryCode(id: 148, code: "+212", name: "Morocco", categoryId: 12),
CountryCode(id: 149, code: "+95", name: "Myanmar", categoryId: 12),
]),
CountryCodeCategory(id: 13, name: "N", countries: [
CountryCode(id: 150, code: "+264", name: "Namibia", categoryId: 13),
CountryCode(id: 151, code: "+674", name: "Nauru", categoryId: 13),
CountryCode(id: 152, code: "+977", name: "Nepal", categoryId: 13),
CountryCode(id: 153, code: "+31", name: "Netherlands", categoryId: 13),
CountryCode(id: 154, code: "+599", name: "Netherlands Antilles", categoryId: 13),
CountryCode(id: 155, code: "+1 869", name: "Nevis", categoryId: 13),
CountryCode(id: 156, code: "+687", name: "New Caledonia", categoryId: 13),
CountryCode(id: 157, code: "+64", name: "New Zealand", categoryId: 13),
CountryCode(id: 158, code: "+505", name: "Nicaragua", categoryId: 13),
CountryCode(id: 159, code: "+227", name: "Niger", categoryId: 13),
CountryCode(id: 160, code: "+234", name: "Nigeria", categoryId: 13),
CountryCode(id: 161, code: "+683", name: "Niue", categoryId: 13),
CountryCode(id: 162, code: "+672", name: "Norfolk Island", categoryId: 13),
CountryCode(id: 163, code: "+850", name: "North Korea", categoryId: 13),
CountryCode(id: 164, code: "+1 670", name: "Northern Mariana Islands", categoryId: 13),
CountryCode(id: 165, code: "+47", name: "Norway", categoryId: 13),
]),
CountryCodeCategory(id: 14, name: "O", countries: [
CountryCode(id: 166, code: "+968", name: "Oman", categoryId: 14),
]),
CountryCodeCategory(id: 15, name: "P", countries: [
CountryCode(id: 167, code: "+92", name: "Pakistan", categoryId: 15),
CountryCode(id: 168, code: "+680", name: "Palau", categoryId: 15),
CountryCode(id: 169, code: "+970", name: "Palestinian Territory", categoryId: 15),
CountryCode(id: 170, code: "+507", name: "Panama", categoryId: 15),
CountryCode(id: 171, code: "+675", name: "Papua New Guinea", categoryId: 15),
CountryCode(id: 172, code: "+595", name: "Paraguay", categoryId: 15),
CountryCode(id: 173, code: "+51", name: "Peru", categoryId: 15),
CountryCode(id: 174, code: "+63", name: "Philippines", categoryId: 15),
CountryCode(id: 175, code: "+48", name: "Poland", categoryId: 15),
CountryCode(id: 176, code: "+351", name: "Portugal", categoryId: 15),
CountryCode(id: 177, code: "+1 787", name: "Puerto Rico", categoryId: 15),
]),
CountryCodeCategory(id: 16, name: "Q", countries: [
CountryCode(id: 178, code: "+974", name: "Qatar", categoryId: 16),
]),
CountryCodeCategory(id: 17, name: "R", countries: [
CountryCode(id: 179, code: "+262", name: "Reunion", categoryId: 17),
CountryCode(id: 180, code: "+40", name: "Romania", categoryId: 17),
CountryCode(id: 181, code: "+7", name: "Russia", categoryId: 17),
CountryCode(id: 182, code: "+250", name: "Rwanda", categoryId: 17),
]),
CountryCodeCategory(id: 18, name: "S", countries: [
CountryCode(id: 183, code: "+685", name: "Samoa", categoryId: 18),
CountryCode(id: 184, code: "+378", name: "San Marino", categoryId: 18),
CountryCode(id: 185, code: "+966", name: "Saudi Arabia", categoryId: 18),
CountryCode(id: 186, code: "+221", name: "Senegal", categoryId: 18),
CountryCode(id: 187, code: "+381", name: "Serbia", categoryId: 18),
CountryCode(id: 188, code: "+248", name: "Seychelles", categoryId: 18),
CountryCode(id: 189, code: "+232", name: "Sierra Leone", categoryId: 18),
CountryCode(id: 190, code: "+65", name: "Singapore", categoryId: 18),
CountryCode(id: 191, code: "+421", name: "Slovakia", categoryId: 18),
CountryCode(id: 192, code: "+386", name: "Slovenia", categoryId: 18),
CountryCode(id: 193, code: "+677", name: "Solomon Islands", categoryId: 18),
CountryCode(id: 194, code: "+27", name: "South Africa", categoryId: 18),
CountryCode(id: 195, code: "+500", name: "South Georgia and the South Sandwich Islands", categoryId: 18),
CountryCode(id: 196, code: "+82", name: "South Korea", categoryId: 18),
CountryCode(id: 197, code: "+34", name: "Spain", categoryId: 18),
CountryCode(id: 198, code: "+94", name: "Sri Lanka", categoryId: 18),
CountryCode(id: 199, code: "+249", name: "Sudan", categoryId: 18),
CountryCode(id: 200, code: "+597", name: "Suriname", categoryId: 18),
CountryCode(id: 201, code: "+268", name: "Swaziland", categoryId: 18),
CountryCode(id: 202, code: "+46", name: "Sweden", categoryId: 18),
CountryCode(id: 203, code: "+41", name: "Switzerland", categoryId: 18),
CountryCode(id: 204, code: "+963", name: "Syria", categoryId: 18),
]),
CountryCodeCategory(id: 19, name: "T", countries: [
CountryCode(id: 205, code: "+886", name: "Taiwan", categoryId: 19),
CountryCode(id: 206, code: "+992", name: "Tajikistan", categoryId: 19),
CountryCode(id: 207, code: "+255", name: "Tanzania", categoryId: 19),
CountryCode(id: 208, code: "+66", name: "Thailand", categoryId: 19),
CountryCode(id: 209, code: "+670", name: "Timor Leste", categoryId: 19),
CountryCode(id: 210, code: "+228", name: "Togo", categoryId: 19),
CountryCode(id: 211, code: "+690", name: "Tokelau", categoryId: 19),
CountryCode(id: 212, code: "+676", name: "Tonga", categoryId: 19),
CountryCode(id: 213, code: "+1 868", name: "Trinidad and Tobago", categoryId: 19),
CountryCode(id: 214, code: "+216", name: "Tunisia", categoryId: 19),
CountryCode(id: 215, code: "+90", name: "Turkey", categoryId: 19),
CountryCode(id: 216, code: "+993", name: "Turkmenistan", categoryId: 19),
CountryCode(id: 217, code: "+1 649", name: "Turks and Caicos Islands", categoryId: 19),
CountryCode(id: 218, code: "+688", name: "Tuvalu", categoryId: 19),
]),
CountryCodeCategory(id: 20, name: "U", countries: [
CountryCode(id: 219, code: "+1 340", name: "U.S. Virgin Islands", categoryId: 20),
CountryCode(id: 220, code: "+256", name: "Uganda", categoryId: 20),
CountryCode(id: 221, code: "+380", name: "Ukraine", categoryId: 20),
CountryCode(id: 222, code: "+971", name: "United Arab Emirates", categoryId: 20),
CountryCode(id: 223, code: "+44", name: "United Kingdom", categoryId: 20),
CountryCode(id: 224, code: "+1", name: "United States", categoryId: 20),
CountryCode(id: 225, code: "+598", name: "Uruguay", categoryId: 20),
CountryCode(id: 226, code: "+998", name: "Uzbekistan", categoryId: 20),
]),
CountryCodeCategory(id: 21, name: "V", countries: [
CountryCode(id: 227, code: "+678", name: "Vanuatu", categoryId: 21),
CountryCode(id: 228, code: "+58", name: "Venezuela", categoryId: 21),
CountryCode(id: 229, code: "+84", name: "Vietnam", categoryId: 21),
]),
CountryCodeCategory(id: 22, name: "W", countries: [
CountryCode(id: 230, code: "+1 808", name: "Wake Island", categoryId: 22),
CountryCode(id: 231, code: "+681", name: "Wallis and Futuna", categoryId: 22),
]),
CountryCodeCategory(id: 23, name: "Y", countries: [
CountryCode(id: 232, code: "+967", name: "Yemen", categoryId: 23)
]),
CountryCodeCategory(id: 24, name: "Z", countries: [
CountryCode(id: 233, code: "+260", name: "Zambia", categoryId: 24),
CountryCode(id: 234, code: "+255", name: "Zanzibar", categoryId: 24),
CountryCode(id: 235, code: "+263", name: "Zimbabwe", categoryId: 24)
]),
]