【发布时间】:2015-10-20 05:06:23
【问题描述】:
我正在尝试使用 Photos 框架重现原生 iOS8 photopicker。我的排序有问题。
假设我做了以下事情:
- 我在 Camera+ 应用中编辑照片并将其保存回图库。
- 我喜欢另一张照片。
在本机照片选择器中:
- 所有照片(包括我收藏的那张)都将按
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];
我对@987654323@进行排序并得到以下结果:
- 所有照片(包括我收藏的那张)都将按
creationDate排序 - 根据原始创建日期,我编辑的照片将在原始照片之后。
然后我更改我的查询,而不是在creationDate 上排序,而是在modificationDate 上排序。我得到以下结果:
- 所有照片大致顺序与
creationDate几乎相同 - 我编辑的照片将在底部。这就是我想要和喜欢的原生应用。
- 收藏的照片也会在底部:-(
因此,Apple 似乎将 modificationDate 更改为最喜欢的动作,并且可能还会更改其他类型的动作,这会扰乱照片的排序。
如何准确地获得 Apple 在其原生应用程序中使用的排序?也许巧妙地使用了NSSortDescriptor?
【问题讨论】:
标签: ios sorting photokit phasset