获取一批 iOS 张图片
Fetch batch of iOS pictures
我想获取位于 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
获取所有照片,然后 select 加载我的应用程序结果的一个子集,这看起来很重...
我想知道有没有办法直接批量抓取照片,而不是全部抓取然后迭代。
此外,如果我可以保留上次获取的批次的索引,以了解我将在哪里获取下一批次,那就太完美了。
感谢您的帮助!
经过更详细的搜索,我终于找到了 here 我要找的东西:
可以使用 NSSortDescriptor
.
中的 setFetchBatchSize
我想获取位于 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
获取所有照片,然后 select 加载我的应用程序结果的一个子集,这看起来很重...
我想知道有没有办法直接批量抓取照片,而不是全部抓取然后迭代。 此外,如果我可以保留上次获取的批次的索引,以了解我将在哪里获取下一批次,那就太完美了。
感谢您的帮助!
经过更详细的搜索,我终于找到了 here 我要找的东西:
可以使用 NSSortDescriptor
.
setFetchBatchSize