iOS Photots阅读笔记 - PHFetchOptions

1,599 阅读1分钟

数据筛选、排序和管理 - PHFetchOptions

PHFetchOptions的对象,与其他属性结合,设置对asset的筛选条件。以及设置一组NSSortDescriptor对象,对获得的asset list排序。

  1. 属性 - 筛选和排序

predicate

@property (nonatomic, strong, nullable) NSPredicate *predicate;

一个谓词。对数据进行筛选。 tips: 参考 简要理解 - NSPredicate

sortDescriptors

@property (nonatomic, strong, nullable) NSArray<NSSortDescriptor *> *sortDescriptors;

一组排序规则。作为(筛选完成得到的)数据集的排序规则。 tips: iOS 使用NSSortDescriptor创建排序规则

includeHiddenAssets

@property (nonatomic, assign) BOOL includeHiddenAssets;

获取结果中是否包含隐藏asset,默认为NO。

includeAllBurstAssets

@property (nonatomic, assign) BOOL includeAllBurstAssets API_AVAILABLE(macos(10.15));

获取结果是否包含隐藏的burst asset,默认为NO。

includeAssetSourceTypes

@property (nonatomic, assign) PHAssetSourceType includeAssetSourceTypes API_AVAILABLE(ios(9));

NS_OPTIONS 枚举值。想要在结果中获取的asset的来源类型,枚举类型如下。

typedef NS_OPTIONS(NSUInteger, PHAssetSourceType) {
    PHAssetSourceTypeNone            = 0,
    PHAssetSourceTypeUserLibrary     = (1UL << 0),
    PHAssetSourceTypeCloudShared     = (1UL << 1),
    PHAssetSourceTypeiTunesSynced    = (1UL << 2),
} API_AVAILABLE(ios(9));

wantsIncrementalChangeDetails

@property (nonatomic, assign) BOOL wantsIncrementalChangeDetails;

一个布尔值,它决定你的应用程序是否接收到取回结果中对象的详细更改信息。

  1. 属性 - 其他

fetchLimit

@property (nonatomic, assign, readwrite) NSUInteger fetchLimit API_AVAILABLE(ios(9));

设置获取结果中包含的最大对象数。