1

我正在尝试从 xcassets 更新图像的内容(通过代码,因为我应该下载新图像)我需要这个,所以我可以尝试动态更新初始屏幕图像和主页图像(两者都从同一个文件中引用在 xcassets 中)。这是因为闪屏只能引用本地呈现的图像。

我尝试了以下方法,但它不起作用。任何帮助表示赞赏。

    var urlString = Bundle.main.resourcePath
    
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let filename = URL(fileURLWithPath: urlString!)
    let fileURL = filename.appendingPathComponent("image_splashscreen@3x.png")
    if let pngImageData = image.pngData() {
    try! pngImageData.write(to: fileURL, options: .atomic)

并且:

    var documentsUrlw: URL {
        return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    }

    let fileName = "image_splashscreen@3x"
    let fileURL = documentsUrl.appendingPathComponent(fileName)
    if let imageData = image.jpegData(compressionQuality: 1.0) {
       try? imageData.write(to: fileURL, options: .atomic)
       return fileName // ----> Save fileName
    }

在这两种情况下,图像都不会更新。

4

1 回答 1

0

看到这个问题后,我搜索了一些类似的问题。例如这个:问题

它说在 Bundle(.xcassets资源) 中你不能向它写入任何文件。URL因此,即使您拥有文件,也无法编写文件。因此,当您保存/写入数据时,您有两个选择位置:Caches/ Documents

于 2021-01-18T18:30:42.223 回答