2013-06-13 3 views
0

나는 모든 사람의 이름과 이메일을 받았으므로이 두 변수를 기반으로 사람의 휴대 전화 번호를 검색하고 싶습니다. 나는 모든 사람의 휴대폰 번호 (이름과 이메일과 함께)를 검색하고 싶지 않습니다. 사용자가 두드리는 것에 대해서만. 어떻게하면 될까요?주소록에서 휴대 전화 번호를 가져 오는 방법 iOS

+2

[ABPerson 참조] (http://developer.apple.com/library/ios /#documentation/AddressBook/Reference/ABPersonRef_iPhoneOS/Reference/reference.html#//apple_ref/c/func/ABAddressBookCopyArrayOfAllPeople) & [iOS 용 주소록 프로그래밍 가이드] (http://developer.apple.com/library/ios/) # documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Introduction.html) –

+0

나는 모든 것을 끝냈다. 이제 모든 사람의 이름과 이메일을 가지고 특정 사람의 휴대 전화 번호를 검색 할 수 있어야합니다 (사용자 탭). –

+0

하실 수 있습니다. 그래서 뭘 기다리고 있니? – QED

답변

1

사용하여 이름 및 이메일 ID에 기초하여 특정 연락처 휴대 전화 번호를 페치 코드 ....

NSMutableString *contactNumber = [[NSMutableString alloc] init]; 

ABAddressBookRef addressBook = ABAddressBookCreate(); 
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook); 
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook); 
for(int i=0; i<nPeople; i++) 
{ 
    ABRecordRef person=CFArrayGetValueAtIndex(people, i); 

    NSMutableString *contacName = [[NSMutableString alloc] init]; 
    [contacName stringByAppendingString:@""]; 
    [contacName appendFormat:@"%@", (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty)]; 
    ABMultiValueRef emailInfo = ABRecordCopyValue(person, kABPersonEmailProperty); 
    CFIndex emailCount = ABMultiValueGetCount(emailInfo); 
    NSString *emailId; 
    if(emailCount > 0) 
    { 
     emailId = (NSString *)ABMultiValueCopyValueAtIndex(emailInfo, 0); 
    } 

    if(([contacName isEqualToString:@"<<contatct name>>"]) && ([emailId isEqualToString:@"<<email id>>"])) 
    { 
     [contactNumber appendFormat:@"%@", (NSString *)ABRecordCopyValue(person, kABPersonPhoneMobileLabel)]; 
     break; 
    } 
} 
CFRelease(people); 
CFRelease(addressBook); 


NSLog("contact Mobile number %@", contactNumber); 
관련 문제