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;

}

嘆願は私が間違っていることを助けます....

手伝ってくれてありがとう

4

3 に答える 3

3

次のリンクを参照して、問題を解決できます

http://agilewarrior.wordpress.com/tag/alassetslibrary/

于 2012-04-16T13:25:51.797 に答える
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; 
}
于 2012-04-17T13:59:47.373 に答える
0
 NSMutableArray *assets = [[NSMutableArray alloc]init];

上記のコードに次のように追加__blockします。

__block NSMutableArray *assets = [[NSMutableArray alloc]init];
于 2013-03-29T05:49:14.600 に答える