阅读 446

iOS Photots阅读笔记 - PHFetchResult

捕获返回值的数据结构 - PHFetchResult

@interface PHFetchResult<__covariant ObjectType> : NSObject <NSCopying, NSFastEnumeration>
复制代码

当在PHAsset、PHCollection、PHAssetCollection和PHCollectionList类上使用类方法来检索对象时,Photos将在获取结果中提供结果对象。

你可以使用NSArray类使用的方法和约定来访问fetch结果的内容。然而,与NSArray对象不同的是,PHFetchResult对象根据需要从Photos库中动态加载内容,即使在处理大量结果时也能提供最佳性能。

获取结果提供了对其内容的线程安全访问。在一次获取之后,获取结果的count值是恒定的,并且获取结果中的所有对象保持相同的localIdentifier值。

实际上,PHFetchResul是为PHPhotoKit特别提供的类Array数据结构,其大部分api都与NSArray相似。

@interface PHFetchResult<__covariant ObjectType> : NSObject <NSCopying, NSFastEnumeration>

@property (readonly) NSUInteger count;
- (ObjectType)objectAtIndex:(NSUInteger)index;
- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx;

- (BOOL)containsObject:(ObjectType)anObject;

- (NSUInteger)indexOfObject:(ObjectType)anObject;
- (NSUInteger)indexOfObject:(ObjectType)anObject inRange:(NSRange)range;

@property (nonatomic, readonly, nullable) ObjectType firstObject;
@property (nonatomic, readonly, nullable) ObjectType lastObject;

- (NSArray<ObjectType> *)objectsAtIndexes:(NSIndexSet *)indexes;

- (void)enumerateObjectsUsingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block;
- (void)enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block;
- (void)enumerateObjectsAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts usingBlock:(void (^)(ObjectType obj, NSUInteger idx, BOOL *stop))block;

- (NSUInteger)countOfAssetsWithMediaType:(PHAssetMediaType)mediaType;

@end
复制代码
文章分类
iOS
文章标签