我正在开发一个显示基于象形图的信息面板的应用程序。我为用户提供了从照片库中选择象形图并将其显示在应用程序中的选项。作为该过程的一部分,我正在恢复文件名,以便能够将象形图的名称与图像一起显示。
我正在使用 UIImagePickerController 从照片库和 PHAsset 中选择图像来收集文件名:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let asset = info[UIImagePickerControllerPHAsset] as? PHAsset {
let assetResources = PHAssetResource.assetResources(for: asset)
print(assetResources.first!.originalFilename)
}
dismiss(animated: true, completion: nil)
}
此解决方案在 iOS 13.2 的 XCode 模拟器中运行良好。但是,它在运行 iOS 13.3 的 Ipad 中不起作用。在后一种情况下,我意识到在将文件上传到照片库时文件名正在更改。结果,我正在恢复通用名称,例如 IMG_001 或 IMG_052 (file:///var/mobile/Media/DCIM/100APPLE/IMG_001.png)
我检查了assetResources 中的所有元数据,并且验证了文件名和URL 属性都注册了这个通用名称。我还测试了当我将文件从 Ipad 照片库导入我的 MacOS 时,我得到了这个名称。但是,如果我从 Ipad 文件管理器实用程序访问该文件,我会看到正确的文件。
因此,iOS13.3 似乎将文件名更改为上传到照片库的过程的一部分。我非常感谢有关如何恢复原始文件名的一些见解。
提前致谢