我的代码是这样的,我将数组传递给 CFArrayRef
然后删除联系人,但代码不起作用:
CFArrayRef arrayRef = (__bridge CFArrayRef)multipleSeleted;
ABAddressBookRef addressbook = ABAddressBookCreate();
if (arrayRef != NULL) {
int count = CFArrayGetCount(arrayRef);
for (int i = 0; i < count; ++i){
ABRecordRef contact = CFArrayGetValueAtIndex(arrayRef, i);
ABAddressBookRemoveRecord(addressbook, contact, nil);
}
}
最佳答案
你可以这样做
方法我给你写好了,传入要删除的联系人数组就可以了
我的代码:
-(void)removeSlectedContactList:(CFArrayRef)arrContacts {
ABAddressBookRef addressbook = ABAddressBookCreate();
if (arrContacts)
{
int count = CFArrayGetCount(arrContacts);
for (int i = 0; i < count; ++i)
{
ABRecordRef contact = CFArrayGetValueAtIndex(arrContacts, i);
ABAddressBookRemoveRecord(addressbook, contact, nil);
}
}
ABAddressBookSave(addressbook, nil);
CFRelease(addressbook);
}
如果你有人名然后遍历你的数组以获取重复的用户列表然后删除
这是示例代码:
NSString *searchName = @"NameOfUser";
ABAddressBookRef addressBook = ABAddressBookCreate();
CFStringRef nameRef = (__bridge CFStringRef) searchName;
CFArrayRef arrSearchUsers = ABAddressBookCopyPeopleWithName(addressbook, nameRef);
[self removeSlectedContactList:arrSearchUsers];
关于ios - 如何从地址簿中删除多个联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722882/