0

我写了这段代码:

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

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

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

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

但是现在我得到了未解决的标识符错误,虽然我正在导入 UIImage 框架?

4

4 回答 4

4

jpegData是 的实例方法UIImage,因此您需要在UIImage实例上调用它,image.

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

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

于 2018-12-18T09:39:42.927 回答
3

UIImageJPEGRepresentation函数已被替换为jpegDataon 的新方法UIImage

改变:

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

至:

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

此外,UIImagePNGRepresentation已替换为pngData().

您可以在此处找到完整列表

于 2018-12-18T09:45:39.323 回答
2

在新版本的 Swift 中,方法UIImageJPEGRepresentation被替换为jpegData. 您还必须在图像上调用此方法

guard let data = image.jpegData(compressionQuality: 0.9) else { ... }
于 2018-12-18T09:41:37.413 回答
1

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

于 2018-12-18T09:39:20.877 回答