Как сказать ABPeoplePickerNavigationController перечислять только контакты, которые имеют адрес электронной почты?

Я хочу, чтобы мои пользователи заполнили поле электронной почты, выбрав контактный адрес электронной почты из своих адресных книг. Я не хочу, чтобы они прокручивали все контакты, чьи электронные письма не заданы, поэтому я хочу отфильтровать те, у которых есть адреса электронной почты.

Это код, который я уже написал. Я могу выяснить, у кого есть адрес электронной почты, а у кого нет, но я не могу сказатьABPeoplePickerNavigationController перечислить только правильные контакты. Достигнуть этого невозможно, я имею в виду, нужно ли мне реализовывать свой собственный класс средства выбора контактов с помощью табличного представления или что-то не так с этим фрагментом кода?

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];

Ответы на вопрос(2)

Ваш ответ на вопрос