我想让我的应用程序的用户有可能把他们的联系人从他们的通讯录中拿出来。我可以呈现ABPeoplePickerNavigationController,用户可以选择一个人,然后ABPPNC再次解散。
这就是我用来展示它的代码:
let peopleController = ABPeoplePickerNavigationController()
peopleController.delegate = self
peopleController.predicateForSelectionOfPerson = NSPredicate(value: true)
self.presentViewController(peopleController, animated: true, completion: nil)peoplePickerNavigationController didSelectPerson函数被调用,但是我不知道如何从ABRecord类型的人那里获取信息。在Properties,苹果说有一些地址簿属性,比如: ABPersonNamePrefixProperty或ABPersonMiddleNameProperty,但我不知道如何使用它。
所以基本上我想做这样的事情:
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {
// What I want to do:
let name = person.lastName
let firstName = person.firstName
let image = person.image
}发布于 2015-09-03 19:16:10
经过长时间的搜索,我找到了一个对我有用的答案:
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {
var firstName: String?
if ABRecordCopyValue(person, kABPersonFirstNameProperty) != nil{
firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty).takeRetainedValue() as? String
}
var lastName: String?
if ABRecordCopyValue(person, kABPersonLastNameProperty){
lastName = ABRecordCopyValue(person, kABPersonLastNameProperty).takeRetainedValue() as? String
}
var pImage: UIImage?
if person != nil && ABPersonHasImageData(person){
pImage = UIImage(data: ABPersonCopyImageData(person).takeRetainedValue())
}
}发布于 2015-09-01 11:57:44
如果你使用"ABAddressBookRef“并获得所有联系人,那就很容易了。然后,您可以向用户展示您想要的,并将在未来的帮助。
https://stackoverflow.com/questions/32329265
复制相似问题