tengo un problema extraño donde puedo registrar el iOS aplicación para escuchar a los cambios en el libro de direcciones móviles. Se llama al método correcto cuando algo cambia en la libreta de direcciones, pero se llama 2 - 6 veces.ABAddressBookRegisterExternalChangeCallback llama varias veces
Cuando el objeto se crea (Singleton, por lo que sólo un objeto), registro de notificaciones con este código:
ABAddressBookRegisterExternalChangeCallback(notificationAddressBook, addressBookChanged, (__bridge_retained void *)self);
El método que se llama se ve así:
void addressBookChanged(ABAddressBookRef ab, CFDictionaryRef info, void *context){
ABAddressBookRevert(ab);
NSLog(@"ADDRESSBOOK CHANGED");
[phoneBookCopy updateCopy];
}
Cualquier ideas de cómo resolver esto?
También tengo este problema. Cada vez que cambio a la libreta de direcciones de iOS para cambiar el nombre de un contacto y volver a mi aplicación, la devolución de llamada se llama cuatro veces, siempre. Intenté agregar un contexto cuando me registré y veo que mi contexto se me envió en las cuatro llamadas. leí aquí: http://stackoverflow.com/questions/7116956/gcd-and-callbacks-concurrency-issue que alguien afirma que esto es un error conocido, pero no he encontrado. ¿Alguien tiene más información sobre este comportamiento irritante? –