Мой код использовал 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 для получения URL-адреса актива PHAsset
?