iOS photos 拿取"最近项目"相册里的照片

之前,我们通常都是取iOS系统相册里的照片,一般都是这种方式

PHFetchOptions *allPhotosOptions = [[PHFetchOptions alloc] init];
    // 按创建时间升序
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    // 获取所有照片(按创建时间升序)
PHFetchResult *allPhotos = [PHAsset fetchAssetsWithOptions:allPhotosOptions];

for (PHAsset *asset in allPhotos) {
        if (asset.mediaType ==  PHAssetMediaTypeImage) {
             file.pickerType = XLPickerFileTypeImage;
            [photos addObject:file];
        }else  if (asset.mediaType ==  PHAssetMediaTypeVideo){
             file.pickerType = XLPickerFileTypeVideo;
            [videos addObject:file];
        }
    }

然而后来发现,大部分的场景是需要获取最近项目的文件排序(虽然系统相册里包含了所有照片),一些APP都是这么做的,比如微信,QQ等

自己尝试了一些方法,发现加 sortDescriptors的排序方式,就是各种不行,总是和相册里的排序方式不同。后面的方式中,发现把sortDescriptors 去除,默认就是最近项目的逆序,然后倒过来不就OK了吗? 话不多说,酸菜,上代码!

PHFetchOptions *allPhotosOptions = [[PHFetchOptions alloc] init];
    // 按创建时间升序
//    allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    // 获取所有照片(按创建时间升序)
    PHFetchResult *allPhotos = [PHAsset fetchAssetsWithOptions:allPhotosOptions];
    
    [allPhotos enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
       PHAsset *asset = (PHAsset *)obj;
       if (asset.mediaType ==  PHAssetMediaTypeImage) {
           file.pickerType = XLPickerFileTypeImage;
           [photos addObject:file];
       }else  if (asset.mediaType ==  PHAssetMediaTypeVideo){
           file.pickerType = XLPickerFileTypeVideo;
           [videos addObject:file];
       }
   }];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面 在手机APP日益增加的前提下,如何更好的提升用户的交互体验似乎成为衡量一个APP重要指标。上述的感悟源于...
    Jack_lin阅读 6,281评论 12 62
  • 智能手机时代的来临,让人类生活产生巨大改变。以前所未有的规模记录下各种照片视频,可以说是照相技术发明以来,最大规模...
    大流浪阅读 3,441评论 2 16
  • 我没有信仰。 年青时这样说,似乎透着些洒脱;现在说,却觉着有点心虚,不踏实了。 “妈妈,我感觉一个人没有宗教信仰很...
    木棉之秋阅读 731评论 77 50
  • 老师和学生最直接的话题无外乎“作业”。学生的作业总有这样那样的问题,除个体认知差异外,老师是剔除作业毛病的...
    吴小琴凉州207阅读 589评论 0 4
  • 工作之后,好久没出去玩过了,偶尔出去也是在南京转转。昨天趁着周末,去了一趟扬州。其实两个月前就已经计划过,但是一...
    angeliur阅读 381评论 0 2