【发布时间】:2011-08-03 16:41:39
【问题描述】:
我们可以通过代码访问 iPhone 联系人列表中每个联系人的所有电子邮件 ID 吗?
【问题讨论】:
我们可以通过代码访问 iPhone 联系人列表中每个联系人的所有电子邮件 ID 吗?
【问题讨论】:
您将通过给定的代码获取各个电子邮件 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];
}
}
【讨论】:
NSString *strLbl = (NSString*)ABAddressBookCopyLocalizedLabel (ABMultiValueCopyLabelAtIndex (emails, idx));
当然,使用 ABAdressBook 类:
ABAddressBookRef addressBook = ABAddressBookCreate(); NSArray *allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
现在您在 allPeople 数组中拥有所有联系人,然后只需按键获取电子邮件。
【讨论】: