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

PHCollection: Fetch all albums, sorted by most-recently edited

在 Apple 的 Photos 框架中,有一个 class PHAssetCollection,代表用户库中的相册。

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

有没有办法编写 returns 相册按最近编辑排序的查询?

Is there a way to write a query that returns albums sorted by most-recently-edited?

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

PHAssetCollection.endDate 的文档说:

This property applies only to asset collections whose type is PHAssetCollectionType.moment. For other asset collection types, this property’s value is 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
    }
}