1
我有一个名为“contacts”的按钮。当我点击它时,我必须访问我的手机通讯录。另外,我必须从选定的联系人处取得手机号码。任何人都可以请建议一个工作代码?我们如何使用iPhone中的swift获取联系人的电话号码?
我有一个名为“contacts”的按钮。当我点击它时,我必须访问我的手机通讯录。另外,我必须从选定的联系人处取得手机号码。任何人都可以请建议一个工作代码?我们如何使用iPhone中的swift获取联系人的电话号码?
反正我懂了。这里是我做到了
//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;
}
}