当我删除objective-c中的特定组时,如何从主AddressBook中删除联系人?

我想删除addressBook上的组。 我已经尝试此代码它成功删除该组但在主要地址簿联系人不会被删除。

CFErrorRef error = NULL; ABAddressBookRef iPhoneAddressBook = ABAddressBookCreate(); ABRecordRef newGroup; newGroup = ABAddressBookGetGroupWithRecordID(iPhoneAddressBook,groupId); ABAddressBookRemoveRecord(iPhoneAddressBook, newGroup, &error); ABAddressBookSave(iPhoneAddressBook,&error); 

我的要求是,每当应用程序打开时我都会有一个服务来调用我已经从特定组中的服务获得联系。 所以我删除旧组并添加从服务提供的新联系人,但它将在主AddressBook上联系两次,因为它只会删除组。 我想删除组以及此组联系人在主要地址簿上都删除了。

最后我的问题是……如何从主AddressBook中删除组和组联系人请帮助我…提前谢谢你..

你可以这样做

 -(void)RemoveContactGroup:(NSString *)name { BOOL flag = [self CheckIfGroupExistWithName:name]; if(!flag) { return; } CFErrorRef error = NULL; ABAddressBookRef iPhoneAddressBook = ABAddressBookCreate(); ABRecordRef newGroup; //if Existing Group newGroup = ABAddressBookGetGroupWithRecordID(iPhoneAddressBook,groupId); NSArray *member = (__bridge NSArray *)ABGroupCopyArrayOfAllMembers(newGroup); int nPeople = (int)[member count]; if (nPeople>0) { for (int i=0; i 

首先,如果存在给组ID,则可以检查组是否存在

 -(BOOL)CheckIfGroupExistWithName:(NSString*)groupName { hasGroup = NO; //checks to see if the group is created ad creats group for HiBye contacts ABAddressBookRef addressBook = ABAddressBookCreate(); CFIndex groupCount = ABAddressBookGetGroupCount(addressBook); CFArrayRef groupLists= ABAddressBookCopyArrayOfAllGroups(addressBook); for (int i=0; i 

核实。