从iPhone照片库中获取照片并在表格视图中展示

4

我想在表格视图中显示来自照片库的所有图片。我能够通过assetsLibrary访问所有图片,但无法在表格中显示它们。我没有收到任何错误信息,但仍然不知道发生了什么。

NSMutableArray *assets = [[NSMutableArray alloc]init];

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

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

         if(group != NULL){

        [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop){

                if(result != NULL){
                [assets addObject:result];
                }else NSLog(@"NO photo");;
          }];
     }
}


failureBlock:^(NSError *error){NSLog(@"Error");}];

表视图的数据源方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

NSString *identifier = @"id";

UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:identifier];  

if(cell == NULL){

    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}

[cell.imageView setImage:[UIImage imageWithCGImage:[[assets objectAtIndex:indexPath.row]thumbnail]]];

[cell textLabel].text = @"Photo";

return cell;

请帮忙看一下我做错了什么......

感谢您的帮助。

3个回答

3

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

从库实例中获取的对象的生命周期与库实例的生命周期相关。我添加了一个静态方法来检索该类的共享实例。
+ (ALAssetsLibrary *)defaultAssetsLibrary {

    static dispatch_once_t pred = 0;

    static ALAssetsLibrary *library = nil;

    dispatch_once(&pred, ^{

    library = [[ALAssetsLibrary alloc] init];

    });

   return library; 
}

0
 NSMutableArray *assets = [[NSMutableArray alloc]init];

在上面的代码中添加__block,如下所示:
__block NSMutableArray *assets = [[NSMutableArray alloc]init];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接