ios - 如何在 Swift 中从地址簿中获取图像联系人?

标签 ios swift xcode6

我想从 Swift 中的 AddressBook 获取联系人的图像,但是当我尝试获取此图像时,出现错误:ABPersonIMageFormat 无法转换为 ABPropertyID

我不知道如何转换它,或者这是否不可能我正在尝试......

这是我的代码:

 var addressBook: ABAddressBookRef?
 var contactList: NSArray = ABAddressBookCopyArrayOfAllPeople(addressBook).takeRetainedValue()

    for record:ABRecordRef in contactList {
        var contactPerson: ABRecordRef = record
        var contactName: String = ABRecordCopyCompositeName(contactPerson).takeRetainedValue() as NSString
        var contactid = ABRecordGetRecordID(contactPerson)

        var image = ABRecordCopyValue(contactPerson, kABPersonImageFormatThumbnail).takeUnretainedValue()  // Here get the error

如何获取在 UIImageView 中显示的图像?

谢谢!

最佳答案

您应该将图像数据视为可选

if let imgData =  ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail)?.takeRetainedValue() {
    let image = UIImage(data: imgData)
    // Contact has image
} else {
    // Contact has not image
}

关于ios - 如何在 Swift 中从地址簿中获取图像联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25586781/

相关文章:

ios - 设置 UITableView 委托(delegate)和数据源时的最佳实践

ios - 如何将 UITableView 连接到新创建的 UITableView 类?

ios - 跨 iOS 设备的 float 是否具有确定性?

swift - 存折,在应用程序中显示一个 .pass

ios - 使用 Xcode 6 .1 在 iOS8 中符号化崩溃

ios - 在 'viewController' 类型的对象上找不到属性 'AppDelegate'

ios - 导入静态库作为子项目

ios - 在 iOS 中检测不活动(无用户交互)以显示单独的屏幕,如覆盖

swift - 通过特定于对象的方法进行对象交互

ios - AutoLayout上的ScrollView问题(Xcode 6)