2012-01-04 13 views
13

Realmente necesito ayuda aquí.Regístrese en los cambios de la libreta de direcciones, usando ABAddressBookRegisterExternalChangeCallback

Hago exactamente lo mismo que en todos los ejemplos, pero no recibo ninguna notificación.

Aquí está mi código:

#import <AddressBook/ABAddressBook.h> 
#import <AddressBook/AddressBook.h> 

El registro para la notificación:

ABAddressBookRef book = ABAddressBookCreate(); 
ABAddressBookRegisterExternalChangeCallback(book, addressBookChanged, self); 

Definición de la devolución de llamada:

void addressBookChanged(ABAddressBookRef reference, 
         CFDictionaryRef dictionary, 
         void *context) 
{ 

    ViewController *viewController = (ViewController*)context; 
    [viewController addressBookChanged];  
} 

Y otro método:

-(void) addressBookChanged 
{ 
    NSLog(@"%@", @"addressBookChanged"); 
} 
  • estoy corriendo la aplicación
  • El cambio a la aplicación de contactos
  • Adición de un nuevo contacto
  • no pasa nada ... ningún registro, nada ...

¿Qué estoy haciendo mal aquí?

  • ¿Algún '#import' falta?
  • ¿Debería funcionar en el dispositivo/simulador?
  • ¿Alguna forma específica de declarar la devolución de llamada? Estático tal vez?

Cualquier ayuda será apreciada. Gracias.

Respuesta

8

Ok, ya sé la respuesta ahora ... se invoca

La devolución de llamada, pero sólo cuando curriculum vitae de nuevo mi solicitud.

+0

¿Recibió información sobre el contacto recientemente agregado o editado en la libreta de direcciones? – BaSha

+0

@BaSha - sí, lo hice. – Gal

+1

Es decir, la notificación es general, no contiene información sobre la entrada AB modificada. – Gal

Cuestiones relacionadas