You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Objective-C中用PHFetchOptions筛选已收藏图片(含日期筛选场景)

解决PHAsset筛选收藏图片的问题

嘿,我刚好做过类似的需求,其实这个问题很容易解决——PHAsset本身就自带了isFavorite属性用来标识是否为收藏的图片,你只需要把这个判断条件追加到现有谓词里就行!

修改后的完整代码示例

你的日期范围筛选逻辑已经没问题,现在只需要在谓词中加入收藏状态的判断:

PHFetchOptions *fetchOptions = [PHFetchOptions new];
// 组合日期范围 + 已收藏的双重筛选条件
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"(creationDate >= %@) && (creationDate <= %@) && (isFavorite == YES)", startDateMinus24Hours, endDatePlus24Hours];
_assetsFetchResults = [PHAsset fetchAssetsWithOptions:fetchOptions];

额外补充说明

  • 如果需要筛选未收藏的图片,只需要把条件改成isFavorite == NO即可;
  • PHAsset还有不少其他可用于谓词筛选的属性,比如isHidden(是否被隐藏)、mediaType(区分照片/视频)等,这些都可以直接加到谓词里组合出更复杂的筛选逻辑;
  • 你可以直接在Xcode中查看PHAsset的头文件,里面会明确标注哪些属性支持NSPredicate查询,这比搜关键词更直接可靠。

内容的提问来源于stack exchange,提问作者tsuyoski

火山引擎 最新活动