从 iPhone 检索最后几张照片

Posted

技术标签:

【中文标题】从 iPhone 检索最后几张照片【英文标题】:retrieve last few photos from iPhone 【发布时间】:2013-03-07 17:00:25 【问题描述】:

了解如何通过以下链接从 ios 设备中检索最后一张照片

How to retrieve the most recent photo from Camera Roll on iOS?

但我想检索最后 20 张左右的照片,因为我不想降低性能,也不想让用户以相反的顺序查看他们的照片

我试过了

long index = group.numberOfAssets - 2;

并以这个错误结束

由于未捕获的异常 'NSRangeException' 导致应用程序终止,原因:'*** -[NSIndexSet initWithIndexesInRange:]: Range 4294967294, 1 超过 NSNotFound 的最大索引值 - 1'

有人可以帮忙吗?谢谢

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) 

    [group setAssetsFilter:[ALAssetsFilter allPhotos]];

    ***long index              = group.numberOfAssets - 2;***
    [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:index]
                            options:0
                         usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop)

【问题讨论】:

【参考方案1】:

可能是您以错误的方式枚举。 This code gets the last image

    ALAssetsGroup* group = [groups lastObject]; // get all assets groups, i think you know how to get them.
    [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:(group.numberOfAssets - 1)] options:NSEnumerationConcurrent usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
     
         if(result) 
                  // result is your needed last asset
             

     ];

【讨论】:

我了解如何获取最后一张照片。我试图获取最后一张照片,但因该错误而失败。不太确定 NSindexSet 限制。 如果您确定索引一切正常,请添加 NSEnumerationConcurrent 选项 有没有人得到完美的解决方案。 我使用“enumerateAssetsWithOptions:NSEnumerationReverse”向后提取照片并为这些照片提供“索引”。然后我将它们发送到视图并以缩略图的形式呈现。一旦用户单击缩略图照片。照片将根据我标记的“索引”从库中提取。

以上是关于从 iPhone 检索最后几张照片的主要内容,如果未能解决你的问题,请参考以下文章

iphone模拟器用户相册照片

使用 AssetLibrary 从 iPhone 获取最后 10 张照片,iOS 6.1.3 上的 Corelocation 弃用问题

如何使用 Photo Framework 将 iPhone 中存储的所有照片发送到 NSArray?

如何在iphone中检索给定月份的最后一个日期作为参数

iPhone:如何使用 iPhone 照片应用程序等“编辑”功能从照片库或相机中获取图像

从 iPhone 照片库中获取照片