Swift 为什么同一本地映像的映像URL不同?
当我从Swift 为什么同一本地映像的映像URL不同?,swift,photosframework,Swift,Photosframework,当我从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
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“
那么为什么同一文件的图像url不同呢?iOS 8以后,每次重新启动应用程序时,应用程序沙盒的绝对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)
一旦你有了fileURL,寻找这个文件,你就会找到在上一次发布中下载的文件
每次用户启动应用程序时,iOS都会为应用程序创建一个新的沙盒。因此绝对URL将非常有用。但iOS将像以前一样负责在沙箱中设置所有文件夹和内容。所以,尽管沙盒的基本url发生了变化,但所有内容的相对url将保持不变
因此建议不要将绝对url保存到任何文件夹:)希望有帮助