두 조각 아래에 배열의 모든 번호와 이름이 도움이 될합니다. 나는 두 번 당신이 동일한 범위에 두 조각을 사용하는 경우 수행 할 필요가 없습니다 것입니다 가게 ...
허가 얻으려면 선언했습니다
let store = CNContactStore()
store.requestAccess(for: .contacts) { (isGranted, error) in
// Check the isGranted flag and proceed if true
}
주소록을 읽으려면을 (I 무작위로 일부 키가 포함되어 있지만 적용 할 수있는 것은 고를 수 있습니다.) :
let contactStore = CNContactStore()
let keys = [CNContactPhoneNumbersKey, CNContactFamilyNameKey, CNContactGivenNameKey, CNContactNicknameKey, CNContactPhoneNumbersKey]
let request1 = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
try? contactStore.enumerateContacts(with: request1) { (contact, error) in
for phone in contact.phoneNumbers {
// Whatever you want to do with it
}
}
공식 문서는 이런 종류의 질문을 시작할 수있는 좋은 곳입니다. –