联系人的图像没有获取

问题描述 投票:4回答:2

我正在使用此代码从设备获取联系人图像,但它不打印任何输出。

if contact.isKeyAvailable(CNContactImageDataKey) {
    if let contactImageData = contact.thumbnailImageData {
        print("image \(String(describing: UIImage(data: contactImageData)))")
    } else {
        print("No image available")
    }
} else {
    print("No Key image available")
}

但它只打印“没有关键图像可用”,虽然我的一些联系人有图像。我尝试使用imageData而不是缩略图ImageData,但显示相同的结果。

ios swift3 uiimage cncontactstore
2个回答
5
投票

确保你的CNContactImageDataAvailableKey中包含CNContactThumbnailImageDataKeykeysToFetch并删除isKeyAvailable if条款:

if let imageData = contact.thumbnailImageData {
    print("image \(String(describing: UIImage(data: imageData)))")
} else {
    print("No image available")
}

1
投票

添加密钥到您的提取请求(图像密钥丢失)

 let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey, CNContactImageDataAvailableKey, CNContactThumbnailImageDataKey]
 let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
© www.soinside.com 2019 - 2024. All rights reserved.