I tested this should work. You may need to configure it ^ - ^
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *allContacts = [(NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook)autorelease];
for (int i =0; i < allContacts.count; i++) {
ABRecordRef person = [allContacts objectAtIndex:i];
if (person != nil) {
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phones) == 0) {
CFErrorRef error = nil;
ABAddressBookRemoveRecord(addressBook, person, &error);
NSLog(@"Removing %@",(NSString *)ABRecordCopyCompositeName(person));
}
CFRelease(phones);
}
}
CFErrorRef saveError = nil;
ABAddressBookSave(addressBook, &saveError);
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
picker.addressBook = addressBook;
NSArray *displayedItems =
[NSArray arrayWithObject:[NSNumber
numberWithInt:kABPersonPhoneProperty]];
picker.displayedProperties = displayedItems;
[self presentModalViewController:picker animated:YES];
CFRelease(addressBook);
source
share