获取一批iOS图片

时间:2016-09-22 12:18:31

标签: ios objective-c performance photos fetching-strategy

我想获取位于iOS设备上的固定批量图片。我正在使用新的Photos Framework,我已经找到了解决方法:

PHFetchOptions *allPhotosOptions = [PHFetchOptions new];

allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];

// Fetches all photos -> i would like to fetch only some of them
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions];

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(currentIndex, batch_size)];

// Iterates over a subset of the previously fetched photos
[allPhotosResult enumerateObjectsAtIndexes:indexSet options:0 usingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop)
{
    // Do stuff    
}

它运行正常,但我首先使用fetchAssetsWithMediaType获取所有照片,然后选择要加载的应用的结果子集,这看起来很重......

我想知道是否有一种方法可以批量直接获取照片,而不是全部获取它们然后迭代。 此外,如果我能保留上次获取的批次的索引,知道我将在哪里获取下一批次,那将是完美的。

感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

经过更详细的搜索,我终于找到了here我想要的东西: 一个人可以使用setFetchBatchSize中的NSSortDescriptor