我正在开发照片应用程序,这是交易:
我创建了自定义相册并添加了一些照片(用户可以创建许多相册)。我用于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]);
}];
}
我希望你能理解我的观点......如果没有,请询问,我会尝试更好地解释它!