In iOS I'm trying to create a new entry in the address book via the ABUnknownPersonViewController with this code (it's an UITableViewController):
- (void) tableView:(UITableView *)tableView
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *phoneNumber = [[cell textLabel] text];
ABRecordRef record = ABPersonCreate();
CFErrorRef error = NULL;
ABMutableMultiValueRef phone =
ABMultiValueCreateMutable(kABPersonPhoneProperty);
ABMultiValueAddValueAndLabel
(phone, phoneNumber, kABPersonPhoneMobileLabel, NULL);
bool didSet = ABRecordSetValue(record, kABPersonPhoneProperty, phone,
&error);
if (!didSet) {
return;
}
ABUnknownPersonViewController *viewController =
[[[ABUnknownPersonViewController alloc] init] autorelease];
[viewController setUnknownPersonViewDelegate:self];
[viewController setAllowsAddingToAddressBook:YES];
[viewController setAllowsActions:NO];
[viewController setDisplayedPerson:record];
[[self navigationController] setNavigationBarHidden:NO animated:NO];
[[self navigationController] pushViewController:viewController
animated:YES];
CFRelease(record);
CFRelease(phone);
}
Edit: but it crashes apparently because the phoneNumber is formatted before is added to the address book (e.j. "987654321" becomes "987 654 321"). If I replace the phoneNumber with a constant string (@"987654321") everything runs alright. Also if I add value not for the ABPersonPhoneProperty but for ABPersonEmailProperty runs properly.
Any help?