首先还是老样子Privacy - Contacts Usage Description。infoplist中获取权限
布局界面
设置代理,创建vc模态出来
let cpvc = CNContactPickerViewController()
// 2.设置代理 cpvc.delegate = self
// 3.弹出控制器 present(cpvc, animated: true, completion: nil)
遵守代理协议CNContactPickerDelegate
func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
// 1.获取用户的姓名
// lastname --> familyName
// firstname --> givenName
letlastname = contact.familyName
letfirstname = contact.givenName
print("姓名:\(firstname) \(lastname)")
self.nameLaben.text="\(lastname)\(firstname)"
// 2.获取用户电话号码(ABMultivalue)
letphones = contact.phoneNumbers
forphoneinphones {
letphoneLabel = phone.label
letphoneValue = phone.value.stringValue
print("phoneLabel:\(phoneLabel). phoneValue:\(phoneValue)")
self.phoneLabel.text="\(phoneValue)"
}
}
//这个方法和上面的方法是一样的,只是它是获取多个联系人的信息
// func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact])
{//
// }
}
这样就行啦~