1

以下のリンクからiOSデバイスから最後の写真を取得する方法を理解する

iOSのカメラロールから最新の写真を取得するにはどうすればよいですか?

しかし、パフォーマンスを低下させたくないので、最後の20枚の写真などを取得したいと思いました。また、ユーザーが写真を逆の順序で表示できるようにしました。

私は試した

long index = group.numberOfAssets - 2;

そしてこのエラーで終わった

キャッチされなかった例外「NSRangeException」が原因でアプリを終了しています。理由:「***-[NSIndexSet initWithIndexesInRange:]:範囲{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)
4

1 に答える 1

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
             }

     }];
于 2013-03-07T17:10:13.947 に答える