[swift] 연락처(Contacts) 앱에서 주소록 가져오기
iOS 앱을 개발 중이거나 Swift로 iOS 앱을 개발하려는 경우, 연락처(Contacts) 앱에서 주소록을 가져와야 하는 경우가 발생할 수 있습니다. Swift를 사용하여 Contacts 프레임워크를 활용하여 간단하게 주소록을 가져올 수 있습니다.
연락처 앱 접근 권한 요청
먼저 연락처 앱에 접근하기 위해서는 Info.plist 파일에 NSContactsUsageDescription
키를 추가하여 사용자에게 권한을 요청해야 합니다. 이를 통해 사용자로부터 연락처 앱 접근에 대한 권한을 얻을 수 있습니다.
<key>NSContactsUsageDescription</key>
<string>연락처에 접근하여 주소록을 가져오기 위해 권한이 필요합니다.</string>
연락처 데이터 가져오기
아래의 Swift 코드를 활용하여 CNContactStore
클래스를 사용하여 연락처 데이터를 가져올 수 있습니다.
import Contacts
let store = CNContactStore()
store.requestAccess(for: .contacts) { (granted, error) in
if granted {
let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]
let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
do {
try store.enumerateContacts(with: request, usingBlock: { (contact, stop) in
// 가져온 연락처 데이터 활용
let firstName = contact.givenName
let lastName = contact.familyName
let phoneNumber = contact.phoneNumbers.first?.value.stringValue
// 가져온 데이터 활용 예시 - 로그 출력
print("이름: \(firstName) \(lastName), 전화번호: \(phoneNumber ?? "없음")")
})
} catch {
// 오류 처리
print("연락처 가져오기 오류: \(error.localizedDescription)")
}
} else {
// 권한이 거부된 경우 처리
}
}
위의 코드는 Contacts 프레임워크를 사용하여 연락처 앱에서 사용자의 주소록을 가져오는 방법을 보여줍니다. CNContactStore
를 사용하여 연락처 데이터를 가져와서 활용할 수 있습니다.
사용자의 연락처를 가져올 때, 사용자에게 권한을 요청하고, 가져온 데이터를 활용하여 필요에 맞게 사용할 수 있습니다.
참고 문헌: