[swift] 연락처(Contacts) 데이터베이스와 스위프트(swift) 연동

스마트폰 애플리케이션을 개발하는 데 있어 연락처 데이터베이스는 꼭 필요한 요소입니다. iOS 개발에서 Swift 언어를 사용하여 연락처 데이터베이스를 읽고 쓰는 방법을 알아보겠습니다.

Contacts 프레임워크

iOS에서 연락처 데이터에 접근하기 위해서는 Contacts 프레임워크를 사용해야 합니다. 이 프레임워크는 연락처 정보를 가져오고 변경할 수 있는 기능을 제공합니다.

import Contacts

연락처 가져오기

연락처를 가져오기 위해서는 CNContactStore를 사용합니다. 다음은 연락처를 가져오는 예제 코드입니다.

let store = CNContactStore()
store.requestAccess(for: .contacts) { granted, error in
    guard granted, error == nil else {
        // 권한이 거부되었거나 에러가 발생한 경우 처리 로직
        return
    }
    let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey]
    let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
    do {
        try store.enumerateContacts(with: request, usingBlock: { contact, _ in
            // 가져온 연락처에 대한 처리 로직
            print(contact.givenName)
            print(contact.familyName)
            for email in contact.emailAddresses {
                print(email.value)
            }
        })
    } catch {
        // 에러 처리 로직
    }
}

연락처 추가하기

새로운 연락처를 추가하는 것은 복잡할 수 있지만, 간단한 예제 코드를 통해 어떻게 해야 하는지 알아보겠습니다.

let newContact = CNMutableContact()
newContact.givenName = "John"
newContact.familyName = "Doe"
let emailAddress = CNLabeledValue(label: CNLabelHome, value: "john.doe@example.com")
newContact.emailAddresses = [emailAddress]
let saveRequest = CNSaveRequest()
saveRequest.add(newContact, toContainerWithIdentifier: nil)
do {
    try store.execute(saveRequest)
    // 저장 성공
} catch {
    // 저장 실패
}

결론

이렇게 Swift를 사용하여 연락처 데이터베이스를 읽고 쓰는 방법을 알아보았습니다. Contacts 프레임워크를 사용하면 iOS 애플리케이션에서 연락처와 관련된 기능을 쉽게 구현할 수 있습니다. 추가로, 사용자에 대한 권한을 요청하여 연락처에 접근하는 것이 중요합니다.

참고 문헌: