gpt4 book ai didi

ios - 如何更改 swift 4 中图像文件中存储的值

转载 作者:行者123 更新时间:2023-11-30 11:36:51 25 4
gpt4 key购买 nike

我保存第一个图像并加载,但是当我保存第二个图像时,按钮的图像与我保存的第一个图像保持不变。有人可以告诉我如何更改该文件的值吗?

以下是当有人选择图像时运行的代码:

        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
// choose a name for your image
let fileName = "image.jpg"
// create the destination file url to save your image
let fileURL = documentsDirectory.appendingPathComponent(fileName)
// get your UIImage jpeg data representation and check if the destination file url already exists
if let data = UIImageJPEGRepresentation(pickedImage, 1.0),
!FileManager.default.fileExists(atPath: fileURL.path) {
do {
// writes the image data to disk
try data.write(to: fileURL)
print("file saved")
} catch {
print("error saving file:", error)
}
}

if let image = getSavedImage(named: "image.jpg") { Button1.setImage(image, for: .normal)
}

这是我的 View 加载时的代码:

 if let image = getSavedImage(named: "image.jpg") {
Button1.setImage(image, for: .normal)
}

最佳答案

正如 @rmaddy 提到的,您已经保存了图像,这就是图像未替换的原因。但如果你想点击按钮图像将被更改,你需要做一些额外的工作,你需要检查 image.jpg 是否存在,然后添加具有差异名称的新图像。要检查图像是否存在,请使用此方法,如果文件存在,此方法返回 bool 值和文件路径。因此,根据您的代码行为,您可以根据这两个值删除现有图像或创建具有不同名称的新图像。

static func isFileExit(filename: String) -> (fileExist: Bool? , path: URL?) {


if let dir = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) {
let filepath = URL(fileURLWithPath: dir.absoluteString).appendingPathComponent(filename)
let fileManager = FileManager.default

if fileManager.fileExists(atPath: filepath.path) {
print("FILEAVAILABLE")
return (true, filepath)
}

}

return (false,nil)
}

关于ios - 如何更改 swift 4 中图像文件中存储的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663042/

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