iphone - 如何在 iOS 中从地址簿中获取电子邮件联系人?

标签 iphone ios objective-c uitableview abaddressbook

在我的应用程序中,我想获取拥有电子邮件的电话联系人的姓名和电子邮件,然后将它们列在表格 View 中。

是否可以使用手机地址簿中填写的姓名和电子邮件字段创建用户对象,然后将这些对象放入 TableView 中?

任何线索将不胜感激。

最佳答案

您需要遵循的方法是:

首先需要获取地址簿的引用,然后获取数组中所有联系人的引用。然后你需要枚举数组并检查他们的电子邮件属性是否为 nil,如果不是 nil,则将该联系人添加到另一个数组,然后将该数组用作 tableView 的数据源:)

如果你愿意,我可以提供代码,用于检查地址簿中联系人的电子邮件条目,然后过滤这些联系人。

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
    CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);

    for (int i=0;i < nPeople;i++) { 
        NSMutableDictionary *dOfPerson=[NSMutableDictionary dictionary];

        ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);

        //For username and surname
        ABMultiValueRef phones =(NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty);
        CFStringRef firstName, lastName;
        firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
        lastName  = ABRecordCopyValue(ref, kABPersonLastNameProperty);
        [dOfPerson setObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName] forKey:@"name"];

        //For Email ids
        ABMutableMultiValueRef eMail  = ABRecordCopyValue(ref, kABPersonEmailProperty);
        if(ABMultiValueGetCount(eMail) > 0) {
            [dOfPerson setObject:(NSString *)ABMultiValueCopyValueAtIndex(eMail, 0) forKey:@"email"];

        }

在您的帮助下,您将了解联系人是否有电子邮件,如果有,那么您可以将该联系人引用添加到其他数组:)希望它有帮助:)

关于iphone - 如何在 iOS 中从地址簿中获取电子邮件联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786390/

相关文章:

javascript - 是否有一个好的 jQuery (Javascript) 库来进行快速视频(非图像)缩放/平移? (目标 : iPhone through PhoneGap)

ios - 无法使用 xCode 7.2 在 iOS 8.3 上使用多行 UILabel

ios - 我想快速释放 CVPixelBufferRef

ios - iphone 6 屏幕边界给我 iphone 5 框架

ios - SceneKit - 什么 orthographicProjection 用于 1 :1 points to SceneKit position ratio

iphone - 可以在另一个线程中更改 userInteractionEnabled 属性吗?

iOS:有没有办法通过让所有内容变灰来让 viewcontroller 看起来不活动?

ios - 增加 UIScrollView 橡皮筋阻力

objective-c - 如何避免桥接头中的 "Redefinition"和 "Duplicate Protocol"定义错误

ios - 如何从类方法中正确返回像 CLLocationCoordinate2D 这样的结构?