0

S3 から画像をダウンロードするためにAFNetworkingカテゴリを使用しています。UIImageView+AFNetworking.h署名済みの URLRequest を取得し、画像の取得に進みます。これは、写真を表示することのみを目的としたコントローラーにあります。

- (void)viewWillAppear:(BOOL)animated
{
    NSURLRequest *request = [BFAWSUploader downloadPhotoWithFileName:[NSString stringWithFormat:@"%@.jpg", _topicMessage.attachment_s3_name]];
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    [_imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"Default.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
        NSLog(@"Pulled down image successfully");
        [hud hide:YES];
    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
        NSLog(@"Failed to pull down image");
    }];
}

「正常にイメージをプルダウンしました」というログ エントリが表示されますが、その後イメージ ビューが更新されません。代わりに、View Controller を離れてから戻る必要があり、キャッシュされたエントリが表示されます。

4

1 に答える 1

1

からUIImageView+AFNetworking.h:

「成功ブロックが指定されている場合、戻る前に画像ビューの画像を設定するのはブロックの責任です。成功ブロックが指定されていない場合、画像を設定するデフォルトの動作self.image = imageが実行されます。」

_imageView.image = imageしたがって、成功ブロック内に必要です。

于 2013-01-17T16:26:54.650 に答える