Cómo acceder a la libreta de direcciones para aplicaciones de ios

Video: Cómo cambiar a la App Store de otro país

El marco iOS ofrece funciones que permiten su aplicación para trabajar con las bases de datos que vienen con los dispositivos IOS. Uno de estos es la base de datos Directorio, que incluye las personas y su información de contacto. dispositivos IOS también proporcionan una aplicación de contactos que permite a los usuarios gestionar esta base de datos mediante la adición de nuevos contactos, actualizarlos, eliminarlos, y así sucesivamente.

La información contenida en una libreta de direcciones se puede acceder a otras aplicaciones, aunque de una manera controlada. Por ejemplo, su aplicación puede presentar a los usuarios con los contactos de la libreta de direcciones, les permiten seleccionar un contacto y luego usar la información del contacto seleccionado. A veces uso esta funcionalidad en Tic-Tac-Toe a regodearse con mi gloriosa puntuación de Tic-Tac-Toe a través de un e-mail a alguien en mi lista de contactos.

Para entender mejor, echar un vistazo a la vista controlador Sesión de Juego (TTTGameSessionViewController.m y .h) y siga adelante. En primer lugar, se utiliza el controlador de vista para implementar el protocolo ABPeoplePickerNavigationControllerDelegate, como se muestra aquí:

@interface TTTGameSessionViewController: UIViewController {...}

El método sendScoresByEmailWithContact (que se reproduce a continuación) es el método de acción que inicia el proceso presentando el selector de libreta de direcciones y permite al usuario seleccionar el contacto:

 - (IBAction) sendScoresByEmailWithContact: (id) remitente {ABPeoplePickerNavigationController * picker = [[alloc c] init] -picker.peoplePickerDelegate = auto [libre presentViewController: selector animada: SÍ completado: nil] -}

Este método también establece su objeto (el controlador de vista Sesión de Juego) como el delegado para el selector. Cuando el selector termina seleccionando una entrada de la libreta de direcciones, el delegado shouldContinueAfterSelectingPerson método se llama:

 - (BOOL) peoplePickerNavigationController: (ABPeoplePickerNavigationController *) peoplePickershouldContinueAfterSelectingPerson: (ABRecordRef) selectedPerson {NSString * correos electrónicos oneEmail = nil-ABMultiValueRef = ABRecordCopyValue (selectedPerson, kABPersonEmailProperty) -Si (ABMultiValueGetCount (emails) gt; 0) {oneEmail = (__ bridge_transfer NSString *) ABMultiValueCopyValueAtIndex (correos electrónicos, 0) -} CFRelease (emails) - [libre dismissViewControllerAnimated: YEScompletion: ^ {[auto sendScoresByEmailWithAddress: oneEmail] -}] - volver NO-}

La dirección de correo electrónico del contacto seleccionado mediante el selector se extrae de la selectedPerson variable usando la propiedad kABPersonEmailProperty. Tenga en cuenta también que el contacto puede tener varios correos electrónicos, y sólo la primera (en el índice 0 en la lista extraída) se utiliza.

A continuación, el controlador de vista Selector se descartó el uso de dismissViewControllerAnimated. Aquí viene la parte interesante: Al establecer el parámetro de finalización al método sendScoresByEmailWithAddress hace que este método sea llamado justo después se descartó el selector de libreta de direcciones. Este proceso, a su vez, hace que la aplicación de correo para disparar hacia arriba, con la dirección de rellenado, todo listo para que usted envíe sus puntuaciones.

Video: Saca Claves Wifi con tu iPhone, iPod Touch y iPad en iOS 7

Por último, mira a los dos métodos bridge_transfer y CFRelease. Son necesarios porque la API de libreta de direcciones no está integrado con el nuevo mecanismo de gestión de memoria automatizado de recuento de referencia (ARC).

Artículos Relacionados