Swift 2.0 ContactsUI Framework
Я работаю над проектом в Swift 2.0, который требует от меня использования IOS 9s ContactUI Framework. Проблема, которая у меня возникает, заключается в правильном выборе номера телефона из списка контактов. Когда я выбираю номер телефона из контакта, приложение вылетает.
Вот код, который я использую для выполнения этой задачи.
var delegate: NewLocationViewControllerDelegate!
var contacts = [CNContact]()
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.sharedApplication().delegate as! AppDelegate
// Do any additional setup after loading the view.
}//end
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func openContacts(sender: UIButton) {
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self;
contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
self.presentViewController(contactPicker, animated: true, completion: nil)
}//end
func contactPicker(picker: CNContactPickerViewController, didSelectContactProperty contactProperty: CNContactProperty) {
let contact = contactProperty.contact
let phoneNumber = contactProperty.value as! CNPhoneNumber
print(contact.givenName)
print(phoneNumber.stringValue)
}//end
1 ответ
Проблема в том, что тап по номеру телефона пытается набрать телефон - а на симуляторе телефона нет.
Ваш contactPicker:didSelectContactProperty:
никогда не будет вызван, потому что номер телефона никогда не будет выбран. Вместо этого, нажав на номер телефона, вы попытаетесь набрать этот номер. Это потому, что вы не предоставили predicateForSelectionOfProperty
, Вам нужно установить predicateForSelectionOfProperty
для NSP предиката, который оценивает true
когда key
это номер телефона.