你需要在你的代码中添加一个额外的步骤,即检查contentType是否等于"image"。如果不是,则使用默认的图标内容类型。
if let url = URL(string: imgUrl),
let data = try? Data(contentsOf: url) {
// 检查contentType是否为图像
guard UIImageJPEGRepresentation(data, 1.0) != nil else {
return } // 如果不是图像,返回默认图标
return ImageService.sharedInstance().saveToCameraRoll(withImageData: data as NSData, completionHandler:nil)
}
这个解决方案是基于UIImageJPEGRepresentation方法可以正确地将任何数据转换为图像。如果你正在处理其他类型的文件,例如视频或音频文件,你可能需要根据文件扩展名来确定它们的MIME类型并相应地调整代码。