iOS formatea los numbers de teléfono de la libreta de direcciones

Mi aplicación utiliza el número de teléfono del usuario como único nombre de usuario, y también sincroniza todos sus contactos para que pueda enviarles posts.

Por lo tanto, necesito una forma de formatear todos los numbers de teléfono que obtengo de la libreta de direcciones del teléfono.

Necesito saber para un número dado:

  1. Código de país (si existe).

  2. El numero en si mismo

Y si el número incluye algún prefijo de llamada internacional, debería eliminarse del número.

Entonces, por ejemplo, si tengo un contacto con el número

014 1 3728834122 

El formatting debería decirme que el código de país es 1 y que el número es 3728834122 (no me importa el prefijo 014)

Lo interesante es que la libreta de direcciones del teléfono nativo parece saber cómo formatear el número, lo puedo ver mientras escribo un nuevo número, agrega () o espacios cuando es necesario.

Entonces mi pregunta es:

  1. ¿Puedo consultar la libreta de direcciones nativa para un número dado, cuál es su código de país y número?

  2. ¿Alguien sabe una buena biblioteca que hace este tipo de formatting?