我正在从 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 的方法。