10

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

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

当我使用

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

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

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

4

2 回答 2

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);
}
于 2012-05-24T09:59:05.503 回答
1

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

于 2012-06-07T15:14:42.627 回答