联系人图片未获取

Image of contacts is not fetching

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

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")
}

但它只打印 "No Key image available" 虽然我的一些联系人有图像。我尝试了 imageData 而不是 thumbnailImageData 但显示了相同的结果。

确保 CNContactImageDataAvailableKeyCNContactThumbnailImageDataKey 包含在您的 keysToFetch 中并删除 isKeyAvailable if 子句:

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

将密钥添加到您的提取请求(缺少图像密钥)

 let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey, CNContactImageDataAvailableKey, CNContactThumbnailImageDataKey]
 let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])