Определить, что было изменено из ABAddressBookRegisterExternalChangeCallback

Я использую ABAddressBookRegisterExternalChangeCallback для получения внешних изменений в AddressbookBook пользователя. Я использую следующий код для регистрации обратного вызова:

ABAddressBookRef ntificationaddressbook = ABAddressBookCreate();
ABAddressBookRegisterExternalChangeCallback(ntificationaddressbook, MyAddressBookExternalChangeCallback, self);

и когда этот обратный вызов вызывается, то MyAddressBookExternalChangeCallback вызывается успешно

void MyAddressBookExternalChangeCallback (ABAddressBookRef ntificationaddressbook,CFDictionaryRef info,void *context)
{
 NSLog(@"Changed Detected......");
}

У меня есть следующие вопросы:

Как я могу определить, какие контакты были изменены, и какие действия(ADD, Update, Delete) был выполнен на этом контакте. Мне нужно получить идентификатор записи этого контакта. Является ли это возможным ?

К сожалению, если это невозможно, то как такие приложения, как viber, tango, watsapp, получают информацию об изменениях?

Я получаю метод обратного вызова, вызываемый только тогда, когда приложение находится в фоновом режиме, если приложение завершается, есть ли способ получить уведомление об изменениях.

Пожалуйста помоги. Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос