gpt4 book ai didi

ios - UIImageJPEGRepresentation Swift 的错误循环

转载 作者:行者123 更新时间:2023-11-28 13:36:04 31 4
gpt4 key购买 nike

我正在将收到的推送通知中的图像保存到磁盘。起初我尝试使用我通常在整个应用程序中使用的静态函数,但我无法从 NotificationService.swift 这是通知扩展。所以我复制了文件中的函数来使用它,但是 Xcode 陷入了错误循环。无论我如何声明 data 都会抛出错误。如果从错误中执行更正 'jpegData(compressionQuality:)' has been renamed to 'UIImageJPEGRepresentation(_:_:)'它会抛出错误 'UIImageJPEGRepresentation' has been replaced by instance method 'UIImage.jpegData(compressionQuality:)' 你能看到这里发生了什么吗?这是函数:

func saveImage(imageName: String, image: UIImage) {


guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }

let fileName = imageName
let fileURL = documentsDirectory.appendingPathComponent(fileName)
guard let data = UIImageJPEGRepresentation(image, 1) else { return }
guard let data2 = image.jpegData(compressionQuality: 0.75) else {return}
guard let data3 = image.UIImageJPEGRepresentation(compressionQuality: 1) else {return}
//
//Checks if file exists, removes it if so.
if FileManager.default.fileExists(atPath: fileURL.path) {
do {
try FileManager.default.removeItem(atPath: fileURL.path)
print("Removed old image")
} catch let removeError {
print("couldn't remove file at path", removeError)
}

}

do {
try data.write(to: fileURL)
} catch let error {
print("error saving file with error", error)
}

}

此外,为什么我不能将原始静态函数引用为 Functions.saveImage?一如既往的感谢。

错误循环:

error loop

最佳答案

如果你使用 swift 4.2+ 尝试只使用

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

否则,如果您使用 swift 4.0,请尝试仅使用

guard let imageData = UIImageJPEGRepresentation(image, 0.8) else {
return
}

不要忘记重新编译代码。

关于ios - UIImageJPEGRepresentation Swift 的错误循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56609563/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com