将iphone联系人列表的所有电子邮件ID提取到iphone应用程序

时间:2012-03-27 05:50:54

标签: iphone objective-c

我需要获取iPhone联系人列表中所有联系人的电子邮件ID。然后所有电子邮件ID都显示在应用程序中的选择器视图中。请给我解决这个问题的想法。 谢谢大家,

1 个答案:

答案 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;