Как получить уведомление в контакте изменилось событие в IOS?

Я хочу получать уведомления о событиях вставки / обновления контактов iPhone.

Можно ли получить уведомление для моего приложения о том, что произошло конкретное изменение контакта?

Просто новичок... для IOS Swift.

Я не ожидаю полного исходного кода. Просто хочет узнать, возможно ли это или нет, а также намекнуть.

Заранее спасибо.

3 ответа

Решение

В iOS это можно сделать с помощью -

Зарегистрировать уведомление об изменении внешнего обратного вызова

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

Реализовать обратный звонок -

void MyAddressBookExternalChangeCallback (ABAddressBookRef ntificationaddressbook,CFDictionaryRef info,void *context)
{
    // called when there is any change in AddressBook
}

Для более подробной информации вы можете обратиться по этой ссылке

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

С iOS 9 вы можете зарегистрировать свой класс, чтобы наблюдать CNContactStoreDidChangeNotification

NSNotificationCenter.defaultCenter().addObserver(
    self,
    selector: #selector(addressBookDidChange),
    name: NSNotification.Name.CNContactStoreDidChange,
    object: nil)

А потом:

@objc func addressBookDidChange(notification: NSNotification){     
    //Handle event here...
}

как сообщается в Contact Framework Reference

После успешного выполнения сохранения хранилище контактов отправляет уведомление CNContactStoreDidChangeNotification в центр уведомлений по умолчанию. Если вы кэшируете какие-либо объекты каркаса контактов, вам необходимо повторно получить эти объекты либо по их идентификаторам, либо по предикатам, которые использовались для их первоначального извлечения, а затем освободить кэшированные объекты. Обратите внимание, что кэшированные объекты устарели, но не являются недействительными.

РЕДАКТИРОВАТЬ:

Обратите внимание, что платформы адресной книги и адресной книги теперь устарели.

Вы можете реализовать KeyValue Observersobservevalueforkeypath получать уведомления об изменении статуса выбранных элементов

Другие вопросы по тегам