전화 번호부 액세스가 필요한 Xcode에서 iPhone 앱을 만들고 있습니다. 주소록에있는 모든 전화 번호가 필요하며 그 번호는 NSArray
에 저장해야합니다.iPhone 주소록 전화 번호
1
A
답변
0
Try this,
NSMutableArray *phoneNumbers = [[NSMutableArray alloc] init];
ABMultiValueRef multiPhones = ABRecordCopyValue(person,kABPersonPhoneProperty);
for(CFIndex i=0;i<ABMultiValueGetCount(multiPhones);++i) {
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i);
NSString *phoneNumber = (NSString *) phoneNumberRef;
[phoneNumbers addObject:phoneNumber];
}
2
//Also you need to include AddressBook.framework
#import <AddressBook/AddressBook.h>
#import <AddressBook/ABAddressBook.h>
#import <AddressBook/ABPerson.h>
[contactList removeAllObjects];
// open the default address book.
ABAddressBookRef m_addressbook = ABAddressBookCreate();
if (!m_addressbook) {
NSLog(@"opening address book");
}
// can be cast to NSArray, toll-free
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);
// CFStrings can be cast to NSString!
for (int i=0;i < nPeople;i++) {
MContact *contact = [[MContact alloc] init];
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
CFStringRef firstName, lastName;
firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);
contact.name = [NSString stringWithFormat:@"%@ %@", firstName, lastName];
ABMutableMultiValueRef eMail = ABRecordCopyValue(ref, kABPersonEmailProperty);
if(ABMultiValueGetCount(eMail) > 0) {
contact.email = (NSString *)ABMultiValueCopyValueAtIndex(eMail, 0);
[contactList addObject:contact];
}
CFRelease(ref);
CFRelease(firstName);
CFRelease(lastName);
}
+0
마찬가지로 전화 번호에 액세스 할 수 있습니다. –
0
엑스 코드 4.5.1> = 0이 코드, 당신이 버전 아래에있는 경우 조건이라면 필요 쓸 경우. addressbook에 ABAddressBookCreate()
을 할당하면됩니다.
__block BOOL accessGranted = NO;
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) {
NSLog(@"Device version is greater than 6.0");
addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookRequestAccessWithCompletion != NULL) { // we're on iOS 6
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
accessGranted = granted;
dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
}
}
else{
addressBook = ABAddressBookCreate();
accessGranted = YES;
}
if (accessGranted) {
NSMutableArray *phoneNumbers = [[NSMutableArray alloc] init];
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
for (CFIndex i = 0; i < CFArrayGetCount(people); i++) {
ABRecordRef person = CFArrayGetValueAtIndex(people, i);
NSString *name = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
ABMultiValueRef multiPhones = ABRecordCopyValue(person,kABPersonPhoneProperty);
NSMutableArray *individualPhoneNumbers = [[NSMutableArray alloc] init];
if (ABMultiValueGetCount(multiPhones) >0) {
for(CFIndex i=0;i<ABMultiValueGetCount(multiPhones);++i) {
CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(multiPhones, i);
NSString *phoneNumber = (__bridge NSString *) phoneNumberRef;
[individualPhoneNumbers addObject:phoneNumber];
}
[phoneNumbers addObject:individualPhoneNumbers];
}
}
관련 문제
- 1. 주소록 충돌을 일으키는 전화 번호 (+45) 접두어!
- 2. 주소록 가져 오기 전화 번호 문제
- 3. iPhone 주소록 - 자동 선택 전화 소유자
- 4. iPhone 사용자의 휴대 전화 번호
- 5. 선택한 전화 번호 받기 [iPhone]
- 6. iPhone : 텍스트에서 전화 번호 찾기
- 7. iPhone 전화 번호 형식 NSFormatter
- 8. 전화 주소록 구현 - 역 색인
- 9. I 전화 번호 : 배열 의심 전화 번호 :
- 10. 주소록 요청 후 사용자의 전화 번호 정보 얻기
- 11. 전화 번호
- 12. 주소록에서 확실한 전화 번호 일치
- 13. 주소록에서 iPhone 전화 번호 레이블 가져 오기
- 14. Objective C에서 전화 번호 수정하기 (iPhone App에서)
- 15. iPhone Phonegap 전화 번호 충돌 문제
- 16. iPhone API 로컬 장치 전화 번호 받기
- 17. iPhone dev 질문 도움 전화 번호 배열
- 18. jQTouch : 전화 번호 링크 전화 앱을 만드는 방법은 무엇입니까?
- 19. iPhone 주소록 : 전화 번호가있는 연락처 목록을 얻는 방법?
- 20. iPhone 주소록 검색
- 21. iphone Three20 TTMessageController 주소록
- 22. iPhone 주소록 타임 스탬프?
- 23. 사용자 휴대 전화/휴대 전화 번호 (iPhone) 검색
- 24. 전화 걸기 전화 번호
- 25. ABPerson의 문자 메시지 용 기본 전화 번호
- 26. 주소록/연락처의 모든 번호 변경
- 27. iPhone 주소록 반복 주소록 SQL 데이터베이스 손상을 야기합니다
- 28. 전화 번호
- 29. IPhone 플랫폼의 전화 번호부 문제
- 30. UIButton에서 전화 걸기 전화 번호 :
확인 [iOS 용 주소록 프로그래밍 가이드 (http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Introduction.html#//apple_ref/doc/uid/TP40007744). – iDev