我们可以从iPhone的联系人列表中访问电子邮件ID吗?

我们可以从iPhone的联系人列表中访问电子邮件ID吗?,iphone,ios,email,contacts,Iphone,Ios,Email,Contacts,我们可以通过密码访问iPhone联系人列表中每个联系人的所有电子邮件ID吗 当然可以,使用ABAdressBook类: ABAddressBookRef addressBook=ABAddressBookCreate(); NSArray*allPeople=(NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook) 现在您在allPeople数组中拥有了所有联系人,然后只需按键获取电子邮件。您将通过给定的代码获取单个电子邮件ID A

我们可以通过密码访问iPhone联系人列表中每个联系人的所有电子邮件ID吗

当然可以,使用ABAdressBook类:

ABAddressBookRef addressBook=ABAddressBookCreate(); NSArray*allPeople=(NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook)


现在您在allPeople数组中拥有了所有联系人,然后只需按键获取电子邮件。

您将通过给定的代码获取单个电子邮件ID

    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef people  = ABAddressBookCopyArrayOfAllPeople(addressBook);
    NSString *contactName = lblTitle.text;
    for(int i = 0;i<ABAddressBookGetPersonCount(addressBook);i++)
    {
        ABRecordRef person = CFArrayGetValueAtIndex(people, i);
        NSString *strEmail = [arContactData valueForKey:@"Email"];
        NSMutableArray *arEmailList = [[NSMutableArray alloc] init];
        ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
        for(CFIndex idx = 0; idx < ABMultiValueGetCount(emails); idx++)
        {
            CFStringRef emailRef = ABMultiValueCopyValueAtIndex(emails, idx);
            NSString *strLbl = (NSString*)ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (emails, idx));
            NSDictionary *dicTemp = [[NSDictionary alloc]initWithObjectsAndKeys:strEmail,@"value", strLbl,@"label", nil];  
            [arEmailList addObject:dicTemp];        
        }
    }
ABAddressBookRef addressBook=ABAddressBookCreate();
CFArrayRef people=abAddressBookCopyArrayFallPeople(地址簿);
NSString*contactName=lblTitle.text;

对于(int i=0;i上面代码中的ArcContactData是什么?我在这一行中也得到了一个强制转换错误:
NSString*strLbl=(NSString*)ABAddressBookCopyLocalizedLabel(abMultivalueCopyLabelateIndex(emails,idx));
ArcContactData是一个可变数组。我在我的末尾检查了它,没有发现任何强制转换错误。