私は写真アプリに取り組んでおり、ここに取引があります:
カスタム フォト アルバムを作成し、いくつかの写真を追加しました (ユーザーは多くのアルバムを作成できます)。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]);
}];
}
あなたが私の見解を理解してくれることを願っています...そうでない場合は、質問してください。より良い方法で説明します!