[swift] 연락처(Contacts) 앱에서 연락처를 추가, 수정, 삭제하는 방법
iOS의 연락처(Contacts) 앱은 사용자의 연락처 정보를 효과적으로 관리할 수 있도록 도와줍니다. 이 글에서는 Swift를 사용하여 연락처 앱에서 연락처를 추가, 수정, 삭제하는 방법에 대해 살펴보겠습니다.
연락처 추가
import Contacts
let contact = CNMutableContact()
contact.givenName = "John"
contact.familyName = "Doe"
let mobileNumber = CNLabeledValue(label: CNLabelPhoneNumberMobile, value: CNPhoneNumber(stringValue: "1234567890"))
contact.phoneNumbers = [mobileNumber]
let saveRequest = CNSaveRequest()
saveRequest.add(contact, toContainerWithIdentifier: nil)
do {
try contactStore.execute(saveRequest)
print("Contact added successfully")
} catch {
print("Error adding contact: \(error.localizedDescription)")
}
위의 코드는 연락처를 추가하는 방법을 보여줍니다. CNMutableContact
를 사용하여 새로운 연락처를 만들고, CNPhoneNumber
을 사용하여 전화번호를 추가한 후, CNSaveRequest
를 사용하여 변경 사항을 저장합니다.
연락처 수정
import Contacts
let contactStore = CNContactStore()
let predicate = CNContact.predicateForContacts(matchingName: "John Doe")
let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]
do {
let contacts = try contactStore.unifiedContacts(matching: predicate, keysToFetch: keysToFetch)
if let contact = contacts.first {
let newPhoneNumber = CNLabeledValue(label: CNLabelPhoneNumberMobile, value: CNPhoneNumber(stringValue: "9876543210"))
contact.phoneNumbers.append(newPhoneNumber)
let saveRequest = CNSaveRequest()
saveRequest.update(contact)
try contactStore.execute(saveRequest)
print("Contact updated successfully")
} else {
print("Contact not found")
}
} catch {
print("Error updating contact: \(error.localizedDescription)")
}
위의 코드는 연락처를 수정하는 방법을 보여줍니다. CNContact.predicateForContacts
를 사용하여 특정 연락처를 찾고, 해당 연락처의 정보를 업데이트한 후 CNSaveRequest
를 사용하여 변경 사항을 저장합니다.
연락처 삭제
import Contacts
let contactStore = CNContactStore()
let predicate = CNContact.predicateForContacts(matchingName: "John Doe")
do {
let contacts = try contactStore.unifiedContacts(matching: predicate, keysToFetch: [])
if let contact = contacts.first {
let saveRequest = CNSaveRequest()
saveRequest.delete(contact.mutableCopy() as! CNMutableContact)
try contactStore.execute(saveRequest)
print("Contact deleted successfully")
} else {
print("Contact not found")
}
} catch {
print("Error deleting contact: \(error.localizedDescription)")
}
위의 코드는 연락처를 삭제하는 방법을 보여줍니다. CNContact.predicateForContacts
를 사용하여 특정 연락처를 찾고, CNSaveRequest
를 사용하여 해당 연락처를 삭제합니다.
이와 같이 Swift를 사용하여 iOS의 연락처(Contacts) 앱에서 연락처를 추가, 수정, 삭제할 수 있습니다. 개별 앱에서 사용자의 연락처 정보를 관리하는 데 유용한 기능입니다.
참조: Apple Developer Documentation - Contacts