0

我正在从 ABAddressBook 过滤联系人,然后使用 IOS7 通讯簿选择器 Ui 显示它。

但我发现 Picker UI 不同步......

我使用以下代码删除自己:

ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *people = (__bridge NSArray *) ABAddressBookCopyArrayOfAllPeople(addressBook);

NSMutableArray * recordsToRemoveArray = [[NSMutableArray alloc]init];

/* Here I decide which records we want to remove 
   and add them to the 'recordsToRemoveArray */

/* Finally, we iterate through the array of records to remove, 
   removing them from our copy of the address book: */
for (int l=0; l < recordsToRemoveArray.count; l++) {
    ABRecordRef recToRemoveRef = (__bridge ABRecordRef)([recordsToRemoveArray objectAtIndex:l]);

    ABAddressBookRemoveRecord(addressBook, recToRemoveRef, nil);
}

但是,我发现联系人与“信件部分”不同步

仅当我是该部分中的唯一联系人时才会发生这种情况。

例如,Bob Smith 已从字母“S”部分中删除,但选取器仍显示“S”部分,但其中包含下一个部分的联系人!

有谁知道如何避免这种情况?我还没有找到删除部分 api 或强制更新 ABAddressBook 的方法。

4

0 回答 0