1
「連絡先」という名前のボタンを持つアプリがあります。私はそれをクリックすると、私の電話の連絡先にアクセスする必要があります。また、私は選択した連絡先から電話番号を取得する必要があります。誰でも作業コードを提案できますか?私は、iPhoneアプリで迅速に連絡先から電話番号を取得するにはどうすればよいですか?
「連絡先」という名前のボタンを持つアプリがあります。私はそれをクリックすると、私の電話の連絡先にアクセスする必要があります。また、私は選択した連絡先から電話番号を取得する必要があります。誰でも作業コードを提案できますか?私は、iPhoneアプリで迅速に連絡先から電話番号を取得するにはどうすればよいですか?
私はとにかくそれを得ました。ここで私はそれをしました
//class content
class ViewController: UIViewController, ABPeoplePickerNavigationControllerDelegate, UINavigationControllerDelegate
次のソースコードは連絡先から人の情報を選択できるようになります。ユーザーの後
@IBAction func OpenContactView(sender: UIButton) {
self.presentViewController(self.peopleSelector, animated: true, completion: nil);
}
接触ビューで人を選ぶ?ABPeoplePickerNavigationControllerDelegateデリゲートのpeoplePickerNavigationController関数が呼び出されます。 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;
}
}