gpt4 book ai didi

ios - 使用 PhotoKit 像本地照片应用程序一样对照片进行排序

转载 作者:技术小花猫 更新时间:2023-10-29 10:46:12 25 4
gpt4 key购买 nike

我正在尝试使用照片框架重现原生 iOS8 的照片选择器。我在排序时遇到了问题。

假设我执行以下操作:

  1. 我在 Camera+ 应用程序中编辑照片并将其保存回图库。
  2. 我收藏了另一张照片。

在 native 照片选择器中:

  • 所有照片(即使是我最喜欢的照片)都将按 creationDate 排序
  • 我编辑和保存的照片将在底部,因为它是我最后一次更改的照片。原件将根据其创建日期在其原始位置。

在我的应用程序中,我执行以下操作:

PHFetchOptions *options = [PHFetchOptions new];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage];
PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:self.assetCollection options:options];

我在 creationDate 中排序并得到以下结果:

  • 所有照片(即使是我最喜欢的照片)都将按 creationDate 排序
  • 根据原始创建日期,我编辑的照片将紧随其后。

然后我更改我的查询,而不是按 creationDate 排序,而是按 modificationDate 排序。我得到以下结果:

  • 所有照片的顺序与 creationDate 几乎相同
  • 我编辑的照片将在底部。这就是我想要并喜欢 native 应用程序的内容。
  • 最喜欢的照片也会在底部:-(

因此,Apple 似乎更改了最喜欢的操作的 modificationDate,并且可能还更改了其他类型的操作,这搞乱了照片的排序。

如何准确获取 Apple 在其 native 应用程序中使用的排序方式?也许巧妙地使用了 NSSortDescriptor

最佳答案

swift 3

let fetchOptions = PHFetchOptions()
let sortOrder = [NSSortDescriptor(key: "creationDate", ascending: false)]
fetchOptions.sortDescriptors = sortOrder

关于ios - 使用 PhotoKit 像本地照片应用程序一样对照片进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com