同步ABAddressbook-Entries

时间:2011-04-14 07:39:52

标签: ios ios4 abaddressbook

我有一个iPad应用程序,可以与服务器端的联系人同步联系。

如何仅检测已更改的ABAdressbook-Entries?服务器端,应用程序或ipad外部都可能发生变化。

当我使用

void ABAddressBookRegisterExternalChangeCallback (
   ABAddressBookRef addressBook,
   ABExternalChangeCallback callback,
   void *context
);

我收到外部更改的回调,但没有任何有关更改内容的信息。我如何获得这些信息?

当我使用NSString * const kABModificationDateProperty时,我不知道要与之比较。

2 个答案:

答案 0 :(得分:4)

我不知道,如果你有解决方案的话。如果没有,可能这会对你有所帮助:

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);
}

答案 1 :(得分:1)

您需要为每个要同步的人实际比较服务器和本地图书之间的所有字段。