Código de área telefónica al nombre de la ciudad en iOS

En la aplicación de correo de voz incorporada de Apple, cuando encuentra un número de teléfono que no reconoce en su libreta de direcciones, muestra una location aproximada debajo del número, presumiblemente basado en el número de teléfono. ¿Cómo lo hicieron? Supongo que hay una gran database de códigos de área y numbers de intercambio en el teléfono, cada uno de los cuales se correlaciona con el nombre de una ciudad o región. ¿Alguien sabe si esta asignación es accesible para las aplicaciones a través de una API pública?

Hay un montón de código repetitivo para mapear el código postal a la ciudad, pero no veo mucho que haga lo mismo con el código de área / intercambio. ¿Algunas ideas?

Hay una serie de sitios web que le dirán a la ciudad o ciudades un código de área determinado. Verizon tiene uno , y otros sitios como http://www.allareacodes.com/ y http://www.411.com/area_zip_codes hacen casi lo mismo. Probablemente también encuentre la misma información en el frente de su directory telefónico local.

Dado que hay less de 1000 códigos de área posibles, searchía una list de códigos de área que pueda include en su progtwig. De esta manera, este aspecto de su aplicación funcionará si una connection de networking está disponible o no.

He creado un file Plist que tiene los códigos de área y ubicaciones en él: areacodes.plist . Para usarlo siga estos pasos:

Si simplemente no va a usar el file Plist:

1. Agregue el file Plist a su proyecto.

2. Cargue el file:

NSBundle *bundle = [NSBundle mainBundle]; NSString *plistPath = [bundle pathForResource:@"areacodes" ofType:@"plist"]; NSDictionary *areaCodeDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; 

3. Usa el dictionary que has cargado. Las keys son los códigos de área, los valores son las ubicaciones:

 NSString *areaCode = @"801"; NSString *location = [self.areaCodeConversion objectForKey:areaCode]; NSLog(@"%@",location); // prints utah 

Para usar la class incluida:

1. Agregue la carpeta descargada a su proyecto.

2. Use la class incluida para acceder a la información del plist:

 #import "AreaCodes.h" ... AreaCodes *areaCodes = [[AreaCodes alloc] init]; NSString *location = [areaCodes getLocationForCode:@"801"]; NSLog(@"%@",location); // prints "Utah" 

Probablemente hubieran comprado un producto comercial de una compañía como Telcordia (trainfo.com). Trabajo para GreatData.com y mantenemos los códigos de área y los prefijos (también llamados, 'NPA / NXX'), junto con el estado de la ciudad principal (centro de tarifas), zona horaria, empresa operativa, etc., pero no lo hacemos tener latitud / longitud (Lo haría Telcordia)

No creo que pueda encontrar los datos que está buscando en un producto gratuito. Hemos pasado mucho time comprobando manualmente nuestros datos.