为什么同一张本地图片的图片URL不一样?

Why the image URL for the same local image is different?

当我从 UIImagePickerController 选择图像并通过此代码退出文件路径时:

if let fileURL = info[.imageURL] as? NSURL {

}

图片的路径是"file:///private/var/mobile/Containers/Data/Application/3CE5CD49-4781-44B3-B021-77D745C97FDC/tmp/193E1106-30F0-4150-B230-7EC1B1EFB4B7.jpeg"

当我在 Photos framework 的帮助下使用该代码

退出同一文件的文件路径时
asset.requestContentEditingInput(with: nil, completionHandler: { (editingInput, _) in
   editingInput?.fullSizeImageURL
})

图片的路径是"file:///var/mobile/Media/DCIM/108APPLE/IMG_8760.JPG"

那么,为什么同一文件的图片网址不同?

iOS 8 以后,Absolute url 应用程序的沙箱会在您每次重新启动应用程序时发生变化。因此,您永远不应该保存视频的绝对值 url。每次重新启动应用程序时,保存视频名称并重新创建 url。

let pathComponent = "pack\(self.packID)-\(selectRow + 1).mp4"
  let directoryURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
  let folderPath: URL = directoryURL.appendingPathComponent("Downloads", isDirectory: true)
  let fileURL: URL = folderPath.appendingPathComponent(pathComponent)

获得文件后URL查找文件,您将找到上次启动时下载的文件。

iOS 每次用户启动应用程序时都会为应用程序创建一个新的沙盒。因此绝对 URL 会非常。但是 iOS 将像以前一样负责设置沙盒内的所有文件夹和内容。因此,尽管 SandBox 的基础 url 发生变化,但所有内容的相对 url 将保持不变。

因此建议永远不要将绝对 url 保存到任何文件夹 :) 希望对您有所帮助