2013-05-28 2 views
3

나는 이메일이 다음의 tableview에서 그 목록을 한 전화 연락처의 이름과 이메일을 싶어.iOS의 AddressBook에서 Email로 연락처를 얻으려면 어떻게해야합니까? 내 응용 프로그램에서

그것은 휴대 전화의 주소록에 의해 채워 다음의 tableview에 그 객체를 넣어 이름과 이메일 필드에 사용자 개체를 만들 수 있습니까?

모든 단서

는 이해할 수있을 것이다.

+0

확인이 링크의 이메일 속성을 얻을 수 있습니다, 또한 CSV 파일을 포함 http://stackoverflow.com/questions/7118772/how-to-get-contacts- 세부 - 중 - 아이폰 -와 - 메이크업 CSV 파일 -의 - 그 접촉 – mindfreak

답변

8

당신이 따라야 할 방법은 다음과 같습니다

먼저 당신은 주소록의 참조를 얻을 다음 배열의 모든 연락처 참조를 얻을 필요가있다. 그리고 당신은 이메일 속성이 전무인지, 다른 배열에 해당 연락처를 추가 한 다음있는 tableView :)에 대한 데이터 소스로 해당 배열을 사용 전무하지 않을 경우 배열을 열거하고 확인해야

원한다면, 내가 할 수있는 주소록에서 연락처에 대한 전자 메일 항목을 확인하는 코드를 제공 한 다음 해당 연락처를 필터링하십시오. 이 경우 당신의 도움으로

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook); 
    CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook); 

    for (int i=0;i < nPeople;i++) { 
     NSMutableDictionary *dOfPerson=[NSMutableDictionary dictionary]; 

     ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i); 

     //For username and surname 
     ABMultiValueRef phones =(NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty); 
     CFStringRef firstName, lastName; 
     firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty); 
     lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty); 
     [dOfPerson setObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName] forKey:@"name"]; 

     //For Email ids 
     ABMutableMultiValueRef eMail = ABRecordCopyValue(ref, kABPersonEmailProperty); 
     if(ABMultiValueGetCount(eMail) > 0) { 
      [dOfPerson setObject:(NSString *)ABMultiValueCopyValueAtIndex(eMail, 0) forKey:@"email"]; 

     } 

는 연락처가 이메일을 보유하고 있는지 여부, 알고 얻을 것이다, 당신은 : 다른 배열에 해당 연락처 참조를 추가가 :

+0

덕분에, 그래 예 : – death7eater

+0

답 : –

+0

안녕하세요 @RajanBalana 업데이트 death7eater @ 좋은 것, 이것은 IOS 8에서 작동하지 않습니다 – Ranjit