Tôi muốn người dùng của mình điền vào trường email bằng cách chọn email của người liên hệ từ sổ địa chỉ của họ. Tôi không muốn họ cuộn tất cả các địa chỉ liên hệ có email không được đặt, vì vậy tôi muốn lọc những địa chỉ liên hệ có địa chỉ email.Làm cách nào để yêu cầu ABPeoplePickerNavigationController chỉ liệt kê các liên hệ có địa chỉ email?
Đây là mã tôi đã viết cho đến thời điểm này. Tôi có thể tìm ra ai có địa chỉ email và ai không có nhưng tôi không thể nói số ABPeoplePickerNavigationController
để chỉ liệt kê các liên hệ phù hợp. Là nó không thể đạt được điều này, tôi có nghĩa là tôi phải thực hiện lớp chọn liên hệ của riêng tôi bằng cách sử dụng một bảng xem hoặc là có cái gì đó sai với đoạn mã này?
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];
OK, cảm ơn đề xuất! – aslisabanci