你好我是iOS設計和Swift的新手,我試圖實現一個簡單的聯繫人選擇器,允許用戶簡單地選擇一個聯繫人。我在視圖控制器中有一個按鈕,並且視圖控制器符合CNContactPickerDelegate,但是當我運行應用程序並使用選取器時,無論我在選取器中按什麼,我的contactPickerDidCancel函數和我的contactPicker函數都不會被調用。據我所知,選擇器應該調用我寫的功能,當我點擊他不取消按鈕或選擇器內的聯繫人。這是錯的嗎?任何幫助或想法都會很棒!謝謝!contactPickerDidCancel和contactPicker函數永遠不會被調用
更新:已解決。這是一個簡單的語法錯誤。在這兩個函數中,我都沒有在「picker」之前加下劃線。
@IBAction func addContactPressed(_ sender: Any) {
let contactPickerViewController = CNContactPickerViewController()
contactPickerViewController.delegate = self
contactPickerViewController.predicateForEnablingContact = NSPredicate(format: "[email protected] > 0", argumentArray: nil)
contactPickerViewController.predicateForSelectionOfProperty =
NSPredicate(format: "key == 'phoneNumbers'", argumentArray: nil)
contactPickerViewController.displayedPropertyKeys = [CNContactEmailAddressesKey, CNContactPhoneNumbersKey]
self.present(contactPickerViewController, animated: true, completion: nil)
}
func contactPickerDidCancel(picker: CNContactPickerViewController) {
print("Cancelled picking a contact.")
}
func contactPicker(picker: CNContactPickerViewController, didSelectContact contact: CNContact) {
print("Selected a contact.")
if contact.isKeyAvailable(CNContactPhoneNumbersKey) {
print(contact.phoneNumbers)
}
else {
print("No phone numbers are available.")
}
}
您的課程是否符合該代表? – Shachar