I want to delete a specific phone number from an address book contact.
It "seems" to work, because it is returning true, but it doesn't.
Please, could anyone help me out here? This would be awesome!
ABAddressBookRef ab = ABAddressBookCreate();
ABRecordRef record = ABAddressBookGetPersonWithRecordID(ab,[myID intValue]);
NSError *error = NULL;
ABMultiValueRef phoneNumbers = ABRecordCopyValue(record,kABPersonPhoneProperty);
for(CFIndex i=0; i < ABMultiValueGetCount(phoneNumbers); i++){
NSString *phoneNumber = (NSString *)ABMultiValueCopyValueAtIndex(phoneNumbers,i);
//ckDebug(@"phoneNumber = %@", phoneNumber);
if ([[oDict objectForKey:@"value"] isEqualToString:phoneNumber]) {
BOOL didRemove = ABMultiValueRemoveValueAndLabelAtIndex(ABMultiValueCreateMutableCopy(phoneNumbers),i);
ckDebug(@"didRemove = %@\n", (didRemove ? @"TRUE" : @"FALSE"));
//and save it!
BOOL didSave = ABAddressBookSave(ab, (CFErrorRef *) error);
ckDebug(@"didSave = %@\n", (didSave ? @"TRUE" : @"FALSE"));
if (error) {
ckDebug(@"ABAddressBookSaveError = %@", error);
}
}
[phoneNumber release];
}
CFRelease(ab);