2011-08-03 24 views

回答

2

您將獲得由給定的代碼的個人電子郵件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];   
     } 
    } 
+0

什麼是arContactData在上面的代碼?此外,我在此行中收到了一個轉換錯誤: 'NSString * strLbl =(NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(emails,idx));' – RPM

+0

arContactData是一個MutableArray。我已經檢查了它@我的結局,並且我發現沒有發現任何轉換錯誤。 –

0

當然,使用ABAdressBook類:

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

現在,您擁有allPeople數組中的所有聯繫人,然後只需通過密鑰獲取電子郵件。

相關問題