Как мы можем получить номер телефона от контактов с помощью swift в приложении для Iphone?

#swift2

#swift2

Вопрос:

У меня есть приложение, в котором есть кнопка с именем «контакты». Я должен получить доступ к своим телефонным контактам, когда я нажимаю на него.Также я должен получить номер телефона от выбранного контакта. Может кто-нибудь, пожалуйста, предложить рабочий код?

Ответ №1:

Я все равно его получил. Вот как я это сделал

 //class content

class ViewController: UIViewController, ABPeoplePickerNavigationControllerDelegate, UINavigationControllerDelegate
  

Следующий исходный код откроет представление контактов и позволит пользователю выбирать информацию о людях из контакта.

 @IBAction func OpenContactView(sender: UIButton) {

    self.presentViewController(self.peopleSelector, animated: true, completion: nil);

}
  

После того, как пользователь выберет людей в представлении контактов?Будет вызвана функция peoplePickerNavigationController делегата ABPeoplePickerNavigationControllerDelegate. Вот пример исходного кода Swift.

 func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController, didSelectPerson person: ABRecord) {

        peoplePicker.dismissViewControllerAnimated(true, completion: nil);



        let index = 0 as CFIndex;



        //Get Name

        var firstName:String?;

        let firstNameObj = ABRecordCopyValue(person, kABPersonFirstNameProperty);

        if(firstNameObj != nil) {

            firstName = firstNameObj.takeRetainedValue() as? String;

        } else {

            firstName = "";

        }



        var lastName:String?;

        let lastNameObj = ABRecordCopyValue(person, kABPersonLastNameProperty);

        if(lastNameObj != nil) {

            lastName = lastNameObj.takeRetainedValue() as? String;

        } else {

            lastName = "";

       }

            //Get Phone Number

        var phoneNumber:String?;

        let unmanagedPhones:Unmanaged? = ABRecordCopyValue(person, kABPersonPhoneProperty);

        if(unmanagedPhones != nil) {

            let phoneNumbers = unmanagedPhones?.takeRetainedValue();

            if(ABMultiValueGetCount(phoneNumbers) > 0) {

                phoneNumber = ABMultiValueCopyValueAtIndex(phoneNumbers, index).takeRetainedValue() as? String;

                phoneNumber = "Phone Number is empty!";

            } else {

                phoneNumber = "Phone Number is empty!";

            }


                self.phoneLabel.text = phoneNumber;

        }

    }