gpt4 book ai didi

iphone - 显示仅包含电子邮件的联系人的 ABAddressBook

转载 作者:可可西里 更新时间:2023-11-01 03:59:33 25 4
gpt4 key购买 nike

我想显示一个只显示有电子邮件的联系人的 ABAddressBook,所以我尝试了这样的操作:

    ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

for( CFIndex emailIndex = 0; emailIndex < nPeople; emailIndex++ ) {
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, emailIndex );
ABMutableMultiValueRef emailRef=ABRecordCopyValue(person, kABPersonEmailProperty);
int emailCount = ABMultiValueGetCount(emailRef);
if(emailCount == 0) {
ABAddressBookRemoveRecord(addressBook, person, NULL);
}
}
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.addressBook = addressBook;
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];

Controller 显示,但所有联系人都显示,如果我选择没有电子邮件的联系人,我会崩溃。如果我调用 ABAddressBookSave(),那么它会删除所有带有电子邮件的联系人,但这是一个永久性更改,甚至会从系统联系人中删除它们。执行此操作的正确方法是什么?

最佳答案

您可能需要构建一个包含电子邮件的联系人数组,然后将其显示在 UITableViewController 上。这是构建此类数组的一种方法:https://stackoverflow.com/a/13980023/745862 .您可以使用 ABPersonViewController 或 ABUnknownPersonViewController 来显示联系人详细信息。

关于iphone - 显示仅包含电子邮件的联系人的 ABAddressBook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11994626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com