按顺序获取 PHAsset
Posted
技术标签:
【中文标题】按顺序获取 PHAsset【英文标题】:Fetch PHAssets in sequence 【发布时间】:2020-09-01 23:21:46 【问题描述】:我正在尝试通过传递本地标识符数组从照片库中获取资产。但是输出的顺序不同。我的应用要求我按顺序获取它们。这就是我使用它的方式
let fetchedResults = PHAsset.fetchAssets(withLocalIdentifiers: videosInLibrary, options: nil)
fetchedResults.enumerateObjects (asset:PHAsset , count:Int, stop:UnsafeMutablePointer<ObjCBool>) in
我们可以做些什么来按我传递的本地标识符的顺序获取它们。
【问题讨论】:
您为什么不将所有生成的 PHAsset 累积到一个数组中,然后按照您喜欢的顺序放置它? 我最终也做了同样的事情。谢谢。 【参考方案1】:它是数据库,所以按存储返回,但你可以在本地完成:
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]
【讨论】:
以上是关于按顺序获取 PHAsset的主要内容,如果未能解决你的问题,请参考以下文章