0

私は写真アプリに取り組んでおり、ここに取引があります:

カスタム フォト アルバムを作成し、いくつかの写真を追加しました (ユーザーは多くのアルバムを作成できます)。ALAssetsLibraryこれとCustomPhotoAlbumカテゴリに使用しました。それらの写真を再利用するために戻す必要があるまで、すべてが完璧に機能しました。したがって、このカテゴリのカスタムメソッドを作成し、保存UIImagesしていますNSMutableArrayが、このメソッドがこの配列を外部に返すようにしたい...私の問題は、enumerateAssetsUsingBlock:アクセスしたいときにバックグラウンドで実行され、写真をアルバムに保存していることです! このメソッドがすべての写真がアルバムにロードされるまで待機してから戻るようにするにはどうすればよいNSArrayですか?

これが私の方法です:

 - (void)loadImagesFromAlbumNamed:(NSString *)name
{
    NSMutableArray *photos = [[NSMutableArray alloc] init];

    [self enumerateGroupsWithTypes:ALAssetsGroupAll
                        usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                            if (group == nil) {
                                return;
                            }

                            if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:name]) {
                                [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
                                    if (result == nil) {
                                        return;
                                    }

                                    // NSLog(@"%@", result);
                                    UIImage *image = [UIImage imageWithCGImage:(__bridge CGImageRef)([result defaultRepresentation])];
                                    [photos addObject:image];
                                }];
                                NSLog(@"%@", [photos description]);
                            }
                        } failureBlock:^(NSError *error) {
                            NSLog(@"%@", [error localizedDescription]);
                        }];
}

あなたが私の見解を理解してくれることを願っています...そうでない場合は、質問してください。より良い方法で説明します!

4

1 に答える 1