我需要获取iPhone联系人列表中所有联系人的电子邮件ID。然后所有电子邮件ID都显示在应用程序中的选择器视图中。请给我解决这个问题的想法。 谢谢大家,
答案 0 :(得分:3)
检查一下,
ABAddressBookRef _addressBookRef = ABAddressBookCreate();
NSArray* allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBookRef);
NSMutableDictionary *contactsInformation = [[NSMutableDictionary alloc] initWithCapacity:[allPeople count]];
for (id record in allPeople)
{
NSMutableDictionary *propertyList = [[NSMutableDictionary alloc] init];
CFTypeRef emailProp = ABRecordCopyValue((ABRecordRef)record, kABPersonEmailProperty);
NSString *email = [((NSArray *)ABMultiValueCopyArrayOfAllValues(emailProp)) objectAtIndex:0 ];
if (!email) {
email = @"";
}
[propertyList setObject:email forKey:@"Email"];
[contactsInformation setObject:propertyList forKey:[NSNumber numberWithInt:ABRecordGetRecordID((ABRecordRef)record)]];
[propertyList release];
}
CFRelease(_addressBookRef);
[allPeople release];
allPeople = nil;