我的代码使用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")
这是一个不安全的方法,因为URL格式将来可能会更改。有时我发现资产标识符在末尾包含“ /”段,需要在连接之前将其删除。
是否有任何“官方” API方法来获取PHAsset
的素材资源网址?