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 это номер телефона.

Другие вопросы по тегам