Bonjour, j'ai besoin d'afficher tous les contacts du carnet d'adresses dans tableview. Si l'utilisateur veut sélectionner les contacts multiples, supprimez les contacts sélectionnés. Pour cela, je n'ai trouvé aucune solution pour cela s'il vous plaît aidez-moi.Comment puis-je supprimer plusieurs contacts du carnet d'adresses dans iOS par programme?
1
A
Répondre
1
Vous pouvez essayer ceci:
Vous devez #import <AddressBookUI/AddressBookUI.h>
:
-(void) removeContactWithRecordsList:(CFArrayRef) selectedRecords_ {
ABAddressBookRef addressbook = ABAddressBookCreate();
if (selectedRecords_ != NULL)
{
int count = CFArrayGetCount(selectedRecords_);
for (int i = 0; i < count; ++i)
{
ABRecordRef contact = CFArrayGetValueAtIndex(selectedRecords_, i);
ABAddressBookRemoveRecord(addressbook, contact, nil);
}
}
ABAddressBookSave(addressbook, nil);
CFRelease(addressbook);
}
EDIT:
Exemple: Comme mon cas, je veux supprimer tous les contacts ont le nom "Sample"
NSString *searchName = @"Sample";
ABAddressBookRef addressbook = ABAddressBookCreate();
CFStringRef nameRef = (__bridge CFStringRef) searchName;
CFArrayRef allSearchRecords = ABAddressBookCopyPeopleWithName(addressbook, nameRef);
[self removeContactWithRecordsList:allSearchRecords];
je suis nouveau à iOS pouvez-vous s'il vous plaît envoyez-moi un exemple de code brièvement. –
@ajaykm voir mon édition –
Si vous avez sélectionné une rangée, j'ai créé une coche et aucune, lorsque la sélection multiple est faite, elle sauvegardera 'OUI' dans le tableau fictif. [celselectedd replaceObjectAtIndex: indexPath.row withObject: @ "OUI"]; Dans l'action de suppression, je vais supprimer la source de données et tableau en utilisant les index de tableau fictif mais le problème lorsque j'ai sélectionné les lignes dans un index –