AFNetworking:setImageWithURLRequest没有设置图像

six*_*way 2 iphone block ios afnetworking

我正在尝试在tableViewCell 上ImageView使用AFNetworking 设置图像setImageWithURLRequest.如果我不在方法中包含successfailure块,如下所示:

[cell.thumbnailImageView setImageWithURL:url placeholderImage:nil]; 
Run Code Online (Sandbox Code Playgroud)

一切都很完美,图像设置.不幸的是我需要块.

这是我目前所拥有的cellForRowAtIndexPath:

if (self.images) { //check if the array of images is set, fetched from a URL

        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: [[self.images objectAtIndex:indexPath.row] objectForKey:@"tbUrl"]]];

        [cell.thumbnailImageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"placeholder"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                NSLog(@"success"); //it always lands here! But nothing happens
        } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
                NSLog(@"fail");
        }];

    }
Run Code Online (Sandbox Code Playgroud)

Pet*_*r E 10

来自UIImageView+AFNetworking.h:

如果指定了成功块,则块的责任是在返回之前设置图像视图的图像.

在您的成功区块中,您需要说:

[cell.thumbnailImageView setImage: image]
Run Code Online (Sandbox Code Playgroud)

  • 关于使用块避免保留周期的SO中有很多讨论,但通常一个好的解决方案(在iOS 5+中)是声明块中引用的对象的"弱"版本,并在块中使用它.在这里,它看起来像'_weak CellClass*weakCell = cell ...'见这里的讨论:http://stackoverflow.com/questions/14667610/arc-capturing-self-block-inside-a-block-and-reference -being发布 - 前-E / (2认同)