Jak powiedzieć ABPeoplePickerNavigationController, aby wyświetlić tylko kontakty, które mają adres e-mail?

Chcę, aby moi użytkownicy wypełniali pole e-mail, wybierając adres e-mail kontaktu z ich książek adresowych. Nie chcę, aby przewijali wszystkie kontakty, których e-maile nie są ustawione, więc chcę filtrować te, które mają adresy e-mail.

To jest kod, który do tej pory napisałem. Mogę dowiedzieć się, kto ma adres e-mail, a kto nie, ale nie mogłem powiedziećABPeoplePickerNavigationController aby wyświetlić tylko właściwe kontakty. Czy to niemożliwe, mam na myśli, czy muszę zaimplementować własną klasę wyboru kontaktów, używając widoku tabeli, czy jest coś nie tak z tym fragmentem kodu?

ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *peopleList = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
NSLog(@"%ld people exist in the addressBook", ABAddressBookGetPersonCount(addressBook));
for (id peopleRecord in peopleList) {
    ABMultiValueRef mv = ABRecordCopyValue((ABRecordRef)peopleRecord, kABPersonEmailProperty);
    CFIndex numberOfAddresses = ABMultiValueGetCount(mv);
    if(numberOfAddresses == 0) {
        CFErrorRef err;
        ABAddressBookRemoveRecord( addressBook, (ABRecordRef)peopleRecord, &err);
    }
}
[peopleList release];

NSLog(@"%ld people have an email", ABAddressBookGetPersonCount(addressBook));

ABPeoplePickerNavigationController *peoplePicker = [[ABPeoplePickerNavigationController alloc] init];
NSNumber* emailProp = [NSNumber numberWithInt:kABPersonEmailProperty];
[peoplePicker setAddressBook:addressBook];
peoplePicker.displayedProperties = [NSArray arrayWithObject:emailProp];
[peoplePicker setPeoplePickerDelegate:self];
[self presentModalViewController:peoplePicker animated:YES];

questionAnswers(2)

yourAnswerToTheQuestion