отслеживание определенных изменений электронной почты в ABRecordRef

Я создаю приложение для синхронизации адресной книги. Я синхронизировал записи адресной книги с локальной базой данных на основе основных данных, и я уже мог их получить. Синхронизировать запись легко с помощью ABRecordId. Я сохраняю идентификатор записи для определенной записи адресной книги в моей локальной базе данных, поэтому я могу получить определенную запись на основе идентификатора. Я также могу реализовать обратный вызов, реализовав ABAddressBookRegisterExternalChangeCallback. Но есть ли способ отследить изменение конкретного электронного письма. Пользователь может изменить свой адрес электронной почты, как можно узнать, изменился ли конкретный адрес электронной почты.


person Sandeep    schedule 13.11.2013    source источник


Ответы (1)


Невозможно прикрепить «слушателя», который каким-то образом будет вызывать функцию в вашем приложении каждый раз, когда кто-то редактирует контакт. Но есть способ поддерживать ваше приложение в актуальном состоянии:

Сохраните переменную в NSUserDefaults, которая содержит дату последнего импорта новых контактов с телефона.

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

Вы должны иметь возможность сортировать записи о людях по этому свойству: kABPersonModificationDateProperty (ссылка)

person Gazzini    schedule 13.11.2013