微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

依次获取PHAsset

如何解决依次获取PHAsset

我正在尝试通过传递本地标识符数组来从照片库中获取资产。但是输出的顺序不同。我的应用程序要求我按顺序获取它们。这就是我的使用方式

let fetchedResults = PHAsset.fetchAssets(withLocalIdentifiers: videosinLibrary,options: nil)
fetchedResults.enumerateObjects { (asset:PHAsset,count:Int,stop:UnsafeMutablePointer<ObjCBool>) in

我们有什么办法可以按照我传递的本地标识符的顺序来获取它们。

解决方法

它是数据库,因此返回存储状态,但是您可以在本地进行操作:

let fetchedResults = PHAsset.fetchAssets(withLocalIdentifiers: videosInLibrary,options: nil)

var tmpCache = [String: PHAsset]()
fetchedResults.enumerateObjects { (asset:PHAsset,count:Int,stop:UnsafeMutablePointer<ObjCBool>) in
    tmpCache[asset.localIdentifier] = asset
}

let results = videosInLibrary.compactMap { tmpCache[$0] }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。