2013-01-07 3 views
1

아이폰 시뮬레이터에서 모든 연락처 정보를 얻고 싶습니다. 이미이 질문과 관련된 다른 질문을 읽었지만 아직 할 수 없습니다. 나는 처음부터 나를 도와 아이폰 프로그래밍에 새로운 사람이다. 모든 것을 단계적으로 정의하는 자습서 링크를 제공하십시오.iphone 시뮬레이터에서 연락처를 얻는 방법

답변

2

다음 코드.

0

ABAddressBookCopyArrayOfAllPeopleInSourceABPersonRef입니다. 액세스하는 주소록

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    contactList=[[NSMutableArray alloc] init]; 
    ABAddressBookRef m_addressbook = ABAddressBookCreate(); 

    if (!m_addressbook) { 
     NSLog(@"opening address book"); 
    } 

    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"]; 

     } 

     //For Phone number 
     NSString* mobileLabel; 
     for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) { 
      mobileLabel = (NSString*)ABMultiValueCopyLabelAtIndex(phones, i); 
      if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel]) 
      { 
       [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"]; 
      } 
      else if ([mobileLabel isEqualToString:(NSString*)kABPersonPhoneIPhoneLabel]) 
      { 
       [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"]; 
       break ; 
      } 

     [contactList addObject:dOfPerson]; 
     CFRelease(ref); 
     CFRelease(firstName); 
     CFRelease(lastName); 
    } 
    NSLog(@"array is %@",contactList); 
    } 
} 

월이 도움이 당신을 위해

CFArrayRef ABAddressBookCopyArrayOfAllPeopleInSource (
    ABAddressBookRef addressBook, 
    ABRecordRef source 
); 
관련 문제