2013-07-10 7 views

risposta

3

È questo quello che stai cercando?

NSString *countryCode = [locale objectForKey:NSLocaleCountryCode]; 
+0

Non ci vuole dalle impostazioni locali. Come ho cambiato il mio locale in qualcosa di molto lontano da me e ho ancora ottenuto il mio codice paese. – tony9099

14

nel file .h è necessario:

#import <CoreTelephony/CTCarrier.h> 
#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

E questa funzione sarà possibile ottenere il codice del paese:

-(NSString*)getCountryDialingCode { 


NSDictionary *dialingCodes = [[NSDictionary alloc]initWithObjectsAndKeys: 
        @"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", 
        nil]; 



CTTelephonyNetworkInfo *network_Info = [CTTelephonyNetworkInfo new]; 
CTCarrier *carrier = network_Info.subscriberCellularProvider; 

NSString *icc = [dialingCodes objectForKey:[carrier.isoCountryCode uppercaseString]]; 

return icc; 

} 

* Questo funziona solo per iPhone con una sim all'interno

2

I miei due cent :-) utilizzando Swift 3

Nota: questo metodo funziona anche se l'utente non ha una simulazione in iPhone.

creare un nuovo Property List file di IntlDialingCodes.plist e incollare seguenti righe:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
     <key>ac</key> 
     <string>247</string> 
     <key>ad</key> 
     <string>376</string> 
     <key>ae</key> 
     <string>971</string> 
     <key>af</key> 
     <string>93</string> 
     <key>ag</key> 
     <string>1</string> 
     <key>ai</key> 
     <string>1</string> 
     <key>al</key> 
     <string>355</string> 
     <key>am</key> 
     <string>374</string> 
     <key>an</key> 
     <string>599</string> 
     <key>ao</key> 
     <string>244</string> 
     <key>aq</key> 
     <string>672</string> 
     <key>ar</key> 
     <string>54</string> 
     <key>as</key> 
     <string>1</string> 
     <key>at</key> 
     <string>43</string> 
     <key>au</key> 
     <string>61</string> 
     <key>aw</key> 
     <string>297</string> 
     <key>az</key> 
     <string>994</string> 
     <key>ba</key> 
     <string>387</string> 
     <key>bb</key> 
     <string>1</string> 
     <key>bd</key> 
     <string>880</string> 
     <key>be</key> 
     <string>32</string> 
     <key>bf</key> 
     <string>226</string> 
     <key>bg</key> 
     <string>359</string> 
     <key>bh</key> 
     <string>973</string> 
     <key>bi</key> 
     <string>257</string> 
     <key>bj</key> 
     <string>229</string> 
     <key>bm</key> 
     <string>1</string> 
     <key>bn</key> 
     <string>673</string> 
     <key>bo</key> 
     <string>591</string> 
     <key>br</key> 
     <string>55</string> 
     <key>bs</key> 
     <string>1</string> 
     <key>bt</key> 
     <string>975</string> 
     <key>bw</key> 
     <string>267</string> 
     <key>by</key> 
     <string>375</string> 
     <key>bz</key> 
     <string>501</string> 
     <key>ca</key> 
     <string>1</string> 
     <key>cd</key> 
     <string>243</string> 
     <key>cf</key> 
     <string>236</string> 
     <key>cg</key> 
     <string>242</string> 
     <key>ch</key> 
     <string>41</string> 
     <key>ci</key> 
     <string>225</string> 
     <key>ck</key> 
     <string>682</string> 
     <key>cl</key> 
     <string>56</string> 
     <key>cm</key> 
     <string>237</string> 
     <key>cn</key> 
     <string>86</string> 
     <key>co</key> 
     <string>57</string> 
     <key>cr</key> 
     <string>506</string> 
     <key>cu</key> 
     <string>53</string> 
     <key>cv</key> 
     <string>238</string> 
     <key>cy</key> 
     <string>357</string> 
     <key>cz</key> 
     <string>420</string> 
     <key>de</key> 
     <string>49</string> 
     <key>dj</key> 
     <string>253</string> 
     <key>dk</key> 
     <string>45</string> 
     <key>dm</key> 
     <string>1</string> 
     <key>do</key> 
     <string>1</string> 
     <key>dz</key> 
     <string>213</string> 
     <key>ec</key> 
     <string>593</string> 
     <key>ee</key> 
     <string>372</string> 
     <key>eg</key> 
     <string>20</string> 
     <key>er</key> 
     <string>291</string> 
     <key>es</key> 
     <string>34</string> 
     <key>et</key> 
     <string>251</string> 
     <key>fi</key> 
     <string>358</string> 
     <key>fj</key> 
     <string>679</string> 
     <key>fk</key> 
     <string>500</string> 
     <key>fm</key> 
     <string>691</string> 
     <key>fo</key> 
     <string>298</string> 
     <key>fr</key> 
     <string>33</string> 
     <key>ga</key> 
     <string>241</string> 
     <key>gb</key> 
     <string>44</string> 
     <key>gd</key> 
     <string>1</string> 
     <key>ge</key> 
     <string>995</string> 
     <key>gf</key> 
     <string>594</string> 
     <key>gh</key> 
     <string>233</string> 
     <key>gi</key> 
     <string>350</string> 
     <key>gl</key> 
     <string>299</string> 
     <key>gm</key> 
     <string>220</string> 
     <key>gn</key> 
     <string>224</string> 
     <key>gp</key> 
     <string>590</string> 
     <key>gq</key> 
     <string>240</string> 
     <key>gr</key> 
     <string>30</string> 
     <key>gt</key> 
     <string>502</string> 
     <key>gu</key> 
     <string>1</string> 
     <key>gw</key> 
     <string>245</string> 
     <key>gy</key> 
     <string>592</string> 
     <key>hk</key> 
     <string>852</string> 
     <key>hn</key> 
     <string>504</string> 
     <key>hr</key> 
     <string>385</string> 
     <key>ht</key> 
     <string>509</string> 
     <key>hu</key> 
     <string>36</string> 
     <key>id</key> 
     <string>62</string> 
     <key>ie</key> 
     <string>353</string> 
     <key>il</key> 
     <string>972</string> 
     <key>in</key> 
     <string>91</string> 
     <key>io</key> 
     <string>246</string> 
     <key>iq</key> 
     <string>964</string> 
     <key>ir</key> 
     <string>98</string> 
     <key>is</key> 
     <string>354</string> 
     <key>it</key> 
     <string>39</string> 
     <key>ja</key> 
     <string>81</string> 
     <key>jm</key> 
     <string>1</string> 
     <key>jo</key> 
     <string>962</string> 
     <key>jp</key> 
     <string>81</string> 
     <key>ke</key> 
     <string>254</string> 
     <key>kg</key> 
     <string>996</string> 
     <key>kh</key> 
     <string>855</string> 
     <key>ki</key> 
     <string>686</string> 
     <key>km</key> 
     <string>269</string> 
     <key>kn</key> 
     <string>1</string> 
     <key>kp</key> 
     <string>850</string> 
     <key>kr</key> 
     <string>82</string> 
     <key>kw</key> 
     <string>965</string> 
     <key>ky</key> 
     <string>1</string> 
     <key>kz</key> 
     <string>7</string> 
     <key>la</key> 
     <string>856</string> 
     <key>lb</key> 
     <string>961</string> 
     <key>lc</key> 
     <string>1</string> 
     <key>li</key> 
     <string>423</string> 
     <key>lk</key> 
     <string>94</string> 
     <key>lr</key> 
     <string>231</string> 
     <key>ls</key> 
     <string>266</string> 
     <key>lt</key> 
     <string>370</string> 
     <key>lu</key> 
     <string>352</string> 
     <key>lv</key> 
     <string>371</string> 
     <key>ly</key> 
     <string>218</string> 
     <key>ma</key> 
     <string>212</string> 
     <key>mc</key> 
     <string>377</string> 
     <key>md</key> 
     <string>373</string> 
     <key>me</key> 
     <string>382</string> 
     <key>mg</key> 
     <string>261</string> 
     <key>mh</key> 
     <string>692</string> 
     <key>mk</key> 
     <string>389</string> 
     <key>ml</key> 
     <string>223</string> 
     <key>mm</key> 
     <string>95</string> 
     <key>mn</key> 
     <string>976</string> 
     <key>mo</key> 
     <string>853</string> 
     <key>mp</key> 
     <string>1</string> 
     <key>mq</key> 
     <string>596</string> 
     <key>mr</key> 
     <string>222</string> 
     <key>ms</key> 
     <string>1</string> 
     <key>mt</key> 
     <string>356</string> 
     <key>mu</key> 
     <string>230</string> 
     <key>mv</key> 
     <string>960</string> 
     <key>mw</key> 
     <string>265</string> 
     <key>mx</key> 
     <string>52</string> 
     <key>my</key> 
     <string>60</string> 
     <key>mz</key> 
     <string>258</string> 
     <key>na</key> 
     <string>264</string> 
     <key>nc</key> 
     <string>687</string> 
     <key>ne</key> 
     <string>227</string> 
     <key>ng</key> 
     <string>234</string> 
     <key>ni</key> 
     <string>505</string> 
     <key>nl</key> 
     <string>31</string> 
     <key>no</key> 
     <string>47</string> 
     <key>np</key> 
     <string>977</string> 
     <key>nr</key> 
     <string>674</string> 
     <key>nu</key> 
     <string>683</string> 
     <key>nz</key> 
     <string>64</string> 
     <key>om</key> 
     <string>968</string> 
     <key>pa</key> 
     <string>507</string> 
     <key>pe</key> 
     <string>51</string> 
     <key>pf</key> 
     <string>689</string> 
     <key>pg</key> 
     <string>675</string> 
     <key>ph</key> 
     <string>63</string> 
     <key>pk</key> 
     <string>92</string> 
     <key>pl</key> 
     <string>48</string> 
     <key>pm</key> 
     <string>508</string> 
     <key>pr</key> 
     <string>1</string> 
     <key>ps</key> 
     <string>970</string> 
     <key>pt</key> 
     <string>351</string> 
     <key>pw</key> 
     <string>680</string> 
     <key>py</key> 
     <string>595</string> 
     <key>qa</key> 
     <string>974</string> 
     <key>re</key> 
     <string>262</string> 
     <key>ro</key> 
     <string>40</string> 
     <key>rs</key> 
     <string>381</string> 
     <key>ru</key> 
     <string>7</string> 
     <key>rw</key> 
     <string>250</string> 
     <key>sa</key> 
     <string>966</string> 
     <key>sb</key> 
     <string>677</string> 
     <key>sc</key> 
     <string>248</string> 
     <key>sd</key> 
     <string>249</string> 
     <key>se</key> 
     <string>46</string> 
     <key>sg</key> 
     <string>65</string> 
     <key>sh</key> 
     <string>290</string> 
     <key>si</key> 
     <string>386</string> 
     <key>sk</key> 
     <string>421</string> 
     <key>sl</key> 
     <string>232</string> 
     <key>sm</key> 
     <string>378</string> 
     <key>sn</key> 
     <string>221</string> 
     <key>so</key> 
     <string>252</string> 
     <key>sr</key> 
     <string>597</string> 
     <key>st</key> 
     <string>239</string> 
     <key>sv</key> 
     <string>503</string> 
     <key>sx</key> 
     <string>1</string> 
     <key>sy</key> 
     <string>963</string> 
     <key>sz</key> 
     <string>268</string> 
     <key>tc</key> 
     <string>1</string> 
     <key>td</key> 
     <string>235</string> 
     <key>tg</key> 
     <string>228</string> 
     <key>th</key> 
     <string>66</string> 
     <key>tj</key> 
     <string>992</string> 
     <key>tk</key> 
     <string>690</string> 
     <key>tm</key> 
     <string>993</string> 
     <key>tn</key> 
     <string>216</string> 
     <key>to</key> 
     <string>676</string> 
     <key>tr</key> 
     <string>90</string> 
     <key>tt</key> 
     <string>1</string> 
     <key>tv</key> 
     <string>688</string> 
     <key>tw</key> 
     <string>886</string> 
     <key>tz</key> 
     <string>255</string> 
     <key>ua</key> 
     <string>380</string> 
     <key>ug</key> 
     <string>256</string> 
     <key>uk</key> 
     <string>44</string> 
     <key>us</key> 
     <string>1</string> 
     <key>uy</key> 
     <string>598</string> 
     <key>uz</key> 
     <string>998</string> 
     <key>va</key> 
     <string>379</string> 
     <key>vc</key> 
     <string>1</string> 
     <key>ve</key> 
     <string>58</string> 
     <key>vg</key> 
     <string>1</string> 
     <key>vi</key> 
     <string>1</string> 
     <key>vn</key> 
     <string>84</string> 
     <key>vu</key> 
     <string>678</string> 
     <key>wf</key> 
     <string>681</string> 
     <key>ws</key> 
     <string>685</string> 
     <key>xt</key> 
     <string>800</string> 
     <key>ye</key> 
     <string>967</string> 
     <key>za</key> 
     <string>27</string> 
     <key>zm</key> 
     <string>260</string> 
     <key>zw</key> 
     <string>263</string> 
    </dict> 
</plist>  

Incolla seguente classe o semplicemente getDialingCode metodo nella classe Helper, ricordati di importare CoreTelephony:

import Foundation 
import CoreTelephony 

class Helper { 

    static func getDialingCode() { 
     let countryCode = CTTelephonyNetworkInfo().subscriberCellularProvider?.isoCountryCode ?? Locale.current.regionCode! 
     let path = Bundle.main.path(forResource: "IntlDialingCodes", ofType: "plist")! 
     let dict = NSDictionary(contentsOfFile: path)! 

     if let dialingCode = dict[countryCode.lowercased()] as? String { 
      print("Dialing code for \"\(countryCode.uppercased())\" is \"+\(dialingCode)\"") 
     } else { 
      print("Dialing code for \"\(countryCode.uppercased())\" not found in plist file") 
     } 
    } 

} 

Usage:

Helper.getDialingCode() 
+1

È questo ISO-3166-1 in lettere minuscole? – diegoperini

+2

sì, tutti i codici sono 'alpha-2' ISO-3166-1 – AamirR

+0

in lettere minuscole :) – AamirR

Problemi correlati