[swift] 연락처(Contacts) 앱에 생일 및 기념일 관리 기능 추가하는 방법
iOS의 연락처(Contacts) 앱은 기본적으로 연락처 정보를 관리하는데 사용됩니다. 그러나 연락처 앱에는 생일이나 기념일과 같은 추가 정보를 저장하고 표시하는 기능이 내장되어 있지 않습니다. 이 기능을 추가하고 싶은데, 어떻게 해야 할까요? 이를 위해 iOS의 연락처 프레임워크 및 이를 이용한 Swift 언어의 사용이 필요합니다.
생일 및 기념일 정보 추가 방법
연락처에 생일 및 기념일 정보를 추가하려면 다음 단계를 따를 수 있습니다.
1. 연락처에 생일 및 기념일 정보 저장
첫째로, 연락처를 나타내는 CNContact
객체를 가져온 후, 이를 수정하여 생일 및 기념일 정보를 추가합니다.
import Contacts
// 연락처 객체 가져오기
let contactStore = CNContactStore()
let contacts = try contactStore.unifiedContacts(matching: CNContact.predicateForContacts(matchingName: "홍길동"), keysToFetch: [])
if let contact = contacts.first {
let birthday = DateComponents(year: 1990, month: 1, day: 1) // 생일 정보 생성
let birthdayDate = Calendar.current.date(from: birthday)
let newContact = contact.mutableCopy() as! CNMutableContact
newContact.birthday = birthdayDate // 생일 정보 설정
let anniversaryDate = DateComponents(year: 2010, month: 5, day: 10) // 기념일 정보 생성
let anniversary = Calendar.current.date(from: anniversaryDate)
newContact.dates.append(CNLabeledValue<NSDate>(label: "Anniversary", value: anniversary as NSDate?)) // 기념일 정보 설정
let saveRequest = CNSaveRequest()
saveRequest.update(newContact)
try contactStore.execute(saveRequest)
}
2. 생일 및 기념일 정보 표시
위 코드를 사용하여 연락처에 생일 및 기념일 정보를 추가한 후, 이를 표시하려면 CNContactViewController
를 사용하여 연락처 정보를 편집하는 방법과 유사합니다. 사용자가 특정 연락처를 선택하면 CNContactViewController
가 해당 연락처의 정보를 표시하고, 여기서 생일 및 기념일 정보도 함께 표시됩니다.
이렇게 하면 기본 연락처 앱에 생일 및 기념일 관리 기능을 추가할 수 있습니다.
마치며
위와 같이 Swift 언어를 사용하여 iOS 연락처 앱에 생일 및 기념일 정보를 추가하고 표시하는 방법에 대해 알아보았습니다. 연락처 앱은 개인 및 비즈니스 관계에 있어서 중요한 역할을 하므로, 보다 다양한 정보를 효율적으로 추가하고 표시할 수 있는 기능을 제공하는 것이 유용할 수 있습니다.
참고: Apple Developer Documentation - Contacts Framework