使用未解析的标识符 'jpegData'

Use of unresolved identifier 'jpegData'

这段代码我写过:

guard let data = UIImageJPEGRepresentation(image, 0.9) else ...

我在 Xcode 中遇到编译器错误,指出此方法已被 jpegData

取代

所以我用这个替换了代码:

guard let data = jpegData(image, 0.9) else ...

但现在我在导入 UIImage 框架时收到未解析的标识符错误?

guard let data = YOUR_IMAGE.jpegData(compressionQuality: 0.9)

jpegDataUIImage的实例方法,所以你需要在你的UIImage实例上调用它,image.

guard let data = image.jpegData(compressionQuality: 0.9) else {...

当对方法名称有疑问时,您应该始终使用文档(它也内置于 Xcode 中,您可以使用 cmd+shift+0 访问它)。

在 Swift 的新版本中,方法 UIImageJPEGRepresentationjpegData 取代。您还必须调用此方法 on image

guard let data = image.jpegData(compressionQuality: 0.9) else { ... }

UIImageJPEGRepresentation 函数已替换为 UIImage 上的新 jpegData 方法。

变化:

guard let data = UIImageJPEGRepresentation(image, 0.9) else ...

至:

guard let data = image.jpegData(compressionQuality: 0.9) else ...

此外,UIImagePNGRepresentation 已替换为 pngData()

您可以找到完整列表here