10.6. Adding Persons to Groups
Problem
You want to assign a person entry in the address book to a group.
Solution
Use the ABGroupAddMember
function.
Discussion
We learned to insert both person entries (in Recipe 10.4) and group
entries (in Recipe 10.5) into the
address book database. In those recipes we implemented two custom
methods named newPersonWithFirstName:lastName:inAddressBook:
and newGroupWithName:inAddressBook:
. Now we want
to add the person entry to the group we created and save the
information to the address book database. Combining these three
recipes, we can use the following code to achieve our goal:
- (BOOL) addPerson:(ABRecordRef)paramPerson toGroup:(ABRecordRef)paramGroup saveToAddressBook:(ABAddressBookRef)paramAddressBook{ BOOL result = NO; if (paramPerson == NULL || paramGroup == NULL || paramAddressBook == NULL){ NSLog(@"Invalid parameters are given."); return NO; } CFErrorRef error = NULL; /* Now attempt to add the person entry to the group */ result = ABGroupAddMember(paramGroup, paramPerson, &error); if (result == NO){ NSLog(@"Could not add the person to the group."); return result; } /* Make sure we save any unsaved changes */ if (ABAddressBookHasUnsavedChanges(paramAddressBook)){ BOOL couldSaveAddressBook = NO; CFErrorRef couldSaveAddressBookError = NULL; couldSaveAddressBook = ABAddressBookSave(paramAddressBook, &couldSaveAddressBookError); if (couldSaveAddressBook){ NSLog(@"Successfully added the person to the group."); result = YES; } else { NSLog(@"Failed ...
Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.