ios - 使用 PHPhotoLibrary 保存图片和视频时如何获取 Asset URL?
问题描述
我的代码用于ALAssetsLibrary
将图像和视频保存到 iOS 画廊。但 Xcode 告诉我ALAssetsLibrary
从 iOS 9.0 开始不推荐使用它,并建议我PHPhotoLibrary
改用它。
使用旧的ALAssetsLibrary
,我在保存后会得到一个资产 URL,例如assets-library://asset/asset.JPG?id=XXX
. 但是ALAssetsLibrary
,我找不到简单的方法来取回资产 URL。关于SO的很多相关问题都参考了这段代码:
https://gist.github.com/jVirus/2f041bb8b1936093773f0bde42af3a49
但是返回的 URL 是文件 URL: file://path/to/file
,而不是资产 URL。
我发现最好的选择是获取资产标识符并连接字符串:
return URL(string: "assets-library://asset/asset.JPG?id="+assetId+"&ext=JPG")
这是一个不安全的 hack,因为 URL 格式将来可能会改变。有时我发现资产标识符在末尾包含“/”段,需要在连接之前将其剥离。
是否有任何“官方”API 方法来获取 a 的资产 URL PHAsset
?
解决方案
推荐阅读
- serial-port - USART3_IRQHandler() 被连续调用并设置了 LL_USART_IsActiveFlag_TXE
- php - PHP - MLM 在树的各自一侧显示节点
- java - 原因:java.lang.ClassCastException:com.google.appengine.api.datastore.Text 无法转换为 java.lang.String
- sql - 每次重建 OLAP 多维数据集时,您是否必须截断所有表?
- ios - 每当应用程序在 react-native 中从后台进入前台时,关键 isInternetReachable 总是在 iOS 中返回一分钟的 false
- c# - 将 OAuth2 身份验证服务器添加到 ASP.NET MVC 5
- varnish - 有人可以解释清漆 vmod 在不同情况下使用私有指针 PRIV_CALL、PRIV_TASK、PRIV_TOP、PRIV_VCL 吗?
- html - 使用 flex 在 bootstrap 4 中证明内容的开始和结束
- testing - 从 runner.class 启动 TestCafe 时使用环境变量
- css - XY 网格 - 类 =“网格容器”