首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ABRecord从ABPeoplePickerNavigationControllerDelegate获取联系人的名称或图像等数据

使用ABRecord从ABPeoplePickerNavigationControllerDelegate获取联系人的名称或图像等数据
EN

Stack Overflow用户
提问于 2015-09-01 10:27:13
回答 2查看 83关注 0票数 0

我想让我的应用程序的用户有可能把他们的联系人从他们的通讯录中拿出来。我可以呈现ABPeoplePickerNavigationController,用户可以选择一个人,然后ABPPNC再次解散。

这就是我用来展示它的代码:

代码语言:javascript
复制
    let peopleController = ABPeoplePickerNavigationController()
    peopleController.delegate = self
    peopleController.predicateForSelectionOfPerson = NSPredicate(value: true)
    self.presentViewController(peopleController, animated: true, completion: nil)

peoplePickerNavigationController didSelectPerson函数被调用,但是我不知道如何从ABRecord类型的人那里获取信息。在Properties,苹果说有一些地址簿属性,比如: ABPersonNamePrefixProperty或ABPersonMiddleNameProperty,但我不知道如何使用它。

所以基本上我想做这样的事情:

代码语言:javascript
复制
func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!) {

    // What I want to do:
    let name = person.lastName
    let firstName = person.firstName
    let image = person.image
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-03 19:16:10

经过长时间的搜索,我找到了一个对我有用的答案:

代码语言:javascript
复制
    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())

    }


}
票数 2
EN

Stack Overflow用户

发布于 2015-09-01 11:57:44

如果你使用"ABAddressBookRef“并获得所有联系人,那就很容易了。然后,您可以向用户展示您想要的,并将在未来的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32329265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档