无法访问文件,因为没有这样的文件或目录

Unable to access Files, because there is no such file or directory

美好的一天。

我收到一条带有图像的消息 URL。每当我收到图像 URL 时,我都必须通过本地通知显示它。像这样

不过,我用UNNotificationAttachment

convenience init(identifier: String, 
             url URL: URL, 
         options: [AnyHashable : Any]? = nil) throws

其中提到

The URL of the file you want to attach to the notification. 
The URL must be a file URL and the file must be readable by the current process. 
This parameter must not be nil.

但是,当我收到消息时,我会先下载它,然后触发本地通知

func downloadImage(from remoteUrl: URL, completion: @escaping(URL?) -> Void) {
     URLSession.shared.downloadTask(with: remoteUrl) { localURL, response, error

       //move to the directory and return the URL
         
       completion(document directory path I have saved)
     }.resumeTask()
}

它成功 returns 本地 URL,并且我能够成功显示通知。

我已经保存了最后一个路径,因为我已经下载了图片。我不想再下载了

但是每当我打开应用程序并想访问下载的文件时,它会出现错误

Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. No such file or directory. 

完成以下测试:

  1. 两者URL路径相同

  2. 我收到通知后下载了容器,通知上有图片,但是在文档目录下没有找到图片。

那么处理这种情况最好的方法是什么?

but didn't find the image in the document directory

因为你没有保存到文档目录。 downloadTask 不稳定。一旦您从完成处理程序 return 删除文件下载到的 URL。如果您不想丢失它,您必须将它复制到一个更安全的位置。