Синхронизация ABAddressbook-Entries
У меня есть iPad-приложение, которое синхронизирует контакты с контактами на стороне сервера.
Как определить только те записи ABAdressbook-Entries, которые изменились? Возможно, что происходят изменения на стороне сервера, в моем приложении или снаружи на ipad.
Когда я использую
void ABAddressBookRegisterExternalChangeCallback (
ABAddressBookRef addressBook,
ABExternalChangeCallback callback,
void *context
);
Я получаю обратный вызов внешних изменений, но без какой-либо информации о том, что изменилось. Как получить эту информацию?
Когда я использую NSString * const kABModificationDateProperty
, я не знаю, с чем сравнивать.
Ответы
Ответ 1
Я не знаю, если у вас есть решение для этого. Если нет, возможно, это поможет вам:
NSArray *allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(yourAddressBook);
for (int i = 0; i < allPeople.count; i++) {
ABRecordRef *person = (ABAddressBookRef *)[allPeople abjectAtIndex:i];
NSDate *lastModiDate = (NSDate*)ABRecordCopyValue(person, kABPersonModificationDateProperty);
NSLog(@"Last modification date: %@ of entry: %@", lastModiDate, person);
}
Ответ 2
Вам нужно будет фактически сравнить все поля между сервером и локальной книгой для каждого человека, который вы хотите синхронизировать.