【问题标题】:Can we access the emailids from the contactlist from iPhone?我们可以从 iPhone 的联系人列表中访问 emailid 吗?
【发布时间】:2011-08-03 16:41:39
【问题描述】:

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

【问题讨论】:

    标签: iphone ios email contacts


    【解决方案1】:

    您将通过给定的代码获取各个电子邮件 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];        
            }
        }
    

    【讨论】:

    • 以上代码中的arContactData是什么?我在这一行也遇到了一个演员错误:NSString *strLbl = (NSString*)ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (emails, idx));
    • arContactData 是一个 MutableArray。我已经检查了它@我的结尾,我没有发现任何你发现的转换错误。
    【解决方案2】:

    当然,使用 ABAdressBook 类:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多