Como acessar o catálogo de endereços para ios

O quadro iOS fornece funções que permitem a sua aplicação para trabalhar com os bancos de dados que vêm com dispositivos iOS. Uma tal base de dados é a Livro de endereços,

que inclui as pessoas e suas informações de contato. dispositivos iOS também fornecem um aplicativo de contatos que permite aos usuários gerenciar esse banco de dados adicionando novos contatos, atualizá-los, excluí-los, e assim por diante.

Video: Como Importar Contatos Do Chip para o iPhone

As informações em um catálogo de endereços é acessível a outros aplicativos, embora de uma maneira controlada. Por exemplo, seu aplicativo pode apresentar os usuários com os contatos do catálogo de endereços, que lhes permita selecionar um contato, e depois usar as informações do contato selecionado. Às vezes eu usar essa funcionalidade em Tic-Tac-Toe para tripudiar sobre meu glorioso pontuação Tic-Tac-Toe através de um e-mail para alguém na minha lista de contatos.

Para entender melhor, dê uma olhada no controlador de vista Jogo Session (TTTGameSessionViewController.m e .h) e seguir adiante. Primeiro, você usar o controlador de vista a implementar o protocolo ABPeoplePickerNavigationControllerDelegate, como mostrado aqui:

@ interface TTTGameSessionViewController: UIViewController {...}

O método sendScoresByEmailWithContact (reproduzida ao lado) é o método de ação que inicia o processo, apresentando o selecionador Address Book e permitindo que o usuário para selecionar o contato:

Video: Como sincronizar contatos do Gmail no iPhone - Videopeia

 - (IBAction) sendScoresByEmailWithContact: (ID) remetente {ABPeoplePickerNavigationController * picker = [[c alloc] Init] -picker.peoplePickerDelegate = auto-[auto presentViewController: picker animado: SIM conclusão: nil] -}


Este método também define seu objeto (o controlador de vista Jogo Session) como o delegado para o selecionador. Quando o seletor de terminar de selecionar uma entrada do catálogo de endereços, o shouldContinueAfterSelectingPerson método delegado é chamado:

 - (BOOL) peoplePickerNavigationController: (*) ABPeoplePickerNavigationController peoplePickershouldContinueAfterSelectingPerson: (ABRecordRef) selectedPerson {NSString * oneEmail = nil-mails ABMultiValueRef = ABRecordCopyValue (selectedPerson, kABPersonEmailProperty) -se (ABMultiValueGetCount (e-mails) gt; 0) {oneEmail = (__ bridge_transfer NSString *) ABMultiValueCopyValueAtIndex (e-mails, 0) -} CFRelease (e-mails) - [auto dismissViewControllerAnimated: YEScompletion: ^ {[auto sendScoresByEmailWithAddress: oneEmail] -}] - retornar NO-}

O endereço de correio electrónico de contacto seleccionado usando o seletor é extraído do selectedPerson variável utilizando a propriedade kABPersonEmailProperty. Note-se também que o contacto pode ter vários e-mails, e apenas o primeiro (no índice 0 na lista extraída) é usado.

Em seguida, o controlador de vista Picker é rejeitado usando dismissViewControllerAnimated. Aqui vem a parte legal: Definir o parâmetro de conclusão para o método sendScoresByEmailWithAddress causa esse método a ser chamado logo após o selecionador Address Book é indeferido. Este processo, por sua vez, faz com que o aplicativo Mail para disparar para cima, com o endereço preenchido, tudo pronto para você enviar sua pontuação.

Video: Transferir contatos do icloud para android

Finalmente, olhe para os dois métodos bridge_transfer e CFRelease. Elas são necessárias porque a API Address Book não está integrado com o novo Automated contagem de referência (ARC) mecanismo de gerenciamento de memória.


Publicações relacionadas