-
[Swift/Study] 전화번호부에서 정보 가져오기Study/ios 2023. 7. 3. 19:00
앱에서 연락처를 접근 및 편집하려면 Contacts라는 프레임 워크를 사용하여야 한다.
그런데 Xcode에서는 Contacts프레임워크를 의존하는 ContactsUI라는 프레임 워크가 있어서
연락처를 더 쉽고 편하게 다룰 수 있게 구현해 놓았다.
쉽게 말하면 연락처에 직접 접근하고 데이터를 다루는 것은 Contacts프레임워크가 하는 일이지만
우리는 ContactsUI를 사용하여 보기 쉽게 연락처를 다룰 수 있다.
ContactsUI는 개발자와 Contacts사이에 있는 인터페이스라고 봐도 될 것 같다.
어쨌든 연락처를 검색하고 편집하고 정보를 가져올 수 있는데
이번 글에서는 ContactsUI를 통해 검색하고 정보를 가져오는 것을 공부해 보겠다.
먼저 아주 기본적인 틀을 준비한다.
그리고 코드로 돌아가 ContactsUI를 임포트 해준다.
import ContactsUI
연락처 버튼의 액션함수 코드
@IBAction func onContact(_ sender: Any) { let contactPickerViewController = CNContactPickerViewController() contactPickerViewController.delegate = self self.present(contactPickerViewController, animated: true, completion: nil) }
연락처 뷰 컨트롤러를 모달로 띄운다.
연락처를 모달로 띄운 모습
연락처를 선택했을 때 정보를 가져와 레이블에 출력해야한다.
연락처를 선택했을 때 발동되는 함수를 정의
// 연락처를 선택했을 때 발동 func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) { // 이름 출력 name.text = contact.familyName + " " + contact.givenName // (성 + 이름) // 저장된 전화번호 중에 첫 번째를 출력 if let phoneNumber = contact.phoneNumbers.first?.value.stringValue { phone.text = phoneNumber } else { phone.text = "No phone number available" } }
이 함수는 CNContactPickerViewController의 델리게이트 함수인 contactPicker(_:didSelect:)를 구현한 것이다.
연락처에서 원하는 사람을 선택하면?
연락처 정보를 가져와 레이블에 출력한 모습!!
'Study > ios' 카테고리의 다른 글
[Swift/Study] 텍스트 및 사진 공유하기 (한국말 설정) (0) 2023.07.05 [Swift/Study] 번호 추가해서 문자메시지 보내기 (0) 2023.07.05 [Swift/Study] TableView 안에 TableView (0) 2023.07.03 [Swift/Study] TableView 셀을 둥글게 만들고 간격 띄우기 (0) 2023.07.02 [Swift/Study] Realm 속성으로 객체/인스턴스 리스트 (0) 2023.06.30