强烈地在这个区块中可能导致保留周期

时间:2014-12-06 19:32:13

标签: objective-c objective-c-blocks retain-cycle

我使用活动指示器视图创建自定义单元格 使用SDWebImage时,我在下载图像时隐藏了活动指示器

[customCell.userPhotoImageView setImageWithURL:[NSURL URLWithString:[[thisNotify user]imageURL]] placeholderImage:nil completed:^
 (UIImage *image, NSError *error, SDImageCacheType cacheType)
 {
     customCell.activityView.hidden = TRUE;
 }];

但我执行代码我看这个警告

在此块中强烈捕获'customCell'可能会导致保留周期

由于

1 个答案:

答案 0 :(得分:1)

您可以在阻止呼叫之前尝试这样的事情:

__weak UICustomCell * weakCustomCell = customCell;
[customCell.userPhotoImageView setImageWithURL:....^{
   weakCustomCell.activityView.hidden = YES;
}];

我认为这样可以解决错误。您只需为您的单元格分配一个新的弱引用对象,这应该会阻止保留周期。不完全确定它背后的原因,但值得一试。

编辑 here's a potential explanation though