PHCollection:获取所有专辑,按最近编辑的排序

Posted

技术标签:

【中文标题】PHCollection:获取所有专辑,按最近编辑的排序【英文标题】:PHCollection: Fetch all albums, sorted by most-recently edited 【发布时间】:2018-06-10 21:49:16 【问题描述】:

在 Apple 的 Photos 框架中,有一个类 PHAssetCollection,它代表用户库中的专辑。

我想获取相册并按上次编辑的日期对它们进行排序(例如,照片最后添加到相册或从相册中删除的日期) - 我还没有找到一种方法来做到这一点。

有没有办法编写一个查询来返回按最近编辑排序的专辑?

【问题讨论】:

【参考方案1】:

有没有办法编写一个查询来返回按最近编辑排序的专辑?

没有。 PHAssetCollection 没有任何属性告诉您它的修改日期,并且 PHAsset 没有任何属性告诉您它何时添加到集合中。

【讨论】:

谢谢!是的,这也是我的假设。希望它存在!【参考方案2】:

PHAssetCollection.endDate 的文档说:

此属性仅适用于类型为 PHAssetCollectionType.moment 的资产集合。对于其他资产集合类型,此属性的值为 nil。

但根据我的经验,这是错误的,endDate 会告诉您照片集中最近一张照片的日期。因此,如果您有专辑列表:

albums.sort  (a1, a2) -> Bool in
    if let d1 = a1.endDate, let d2 = a2.endDate 
        return d1 > d2
     else 
        return true // aka kind of random
    

【讨论】:

以上是关于PHCollection:获取所有专辑,按最近编辑的排序的主要内容,如果未能解决你的问题,请参考以下文章

如何获取按最近提交排序的 Git 分支列表?

在 ElasticSearch 中获取最近到最远的所有评论,反之亦然

实现collectionViewCell的移动(长按或者直接拖拽)

Azure PHP SDK:按资产名称获取资产

django 1.5 按日期获取最新记录

获取“最近的”分组记录(按顺序排列)