我正在使用此代码从设备获取联系人图像,但它不打印任何输出。
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而不是thumbnailImageData,但显示相同的结果。
答案 0 :(得分:5)
确保CNContactImageDataAvailableKey
中包含CNContactThumbnailImageDataKey
和keysToFetch
并删除isKeyAvailable
if
条款:
if let imageData = contact.thumbnailImageData {
print("image \(String(describing: UIImage(data: imageData)))")
} else {
print("No image available")
}
答案 1 :(得分:1)
在获取请求中添加密钥(缺少图像密钥)
let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey, CNContactImageDataAvailableKey, CNContactThumbnailImageDataKey]
let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])