我对按钮有以下操作,它可以切换对象是显示为收藏还是非收藏:
- (IBAction)addToFavorites:(UIButton *)sender {
if ([object isFavorite]) {
[_apiManager removeFromFavorite:[object ID] withCompletion:^ {
[_favoriteButton setImage:[UIImage imageNamed:@"favorite"] forState:UIControlStateNormal];
}];
}
else {
[_apiManager addToFavorite:[object ID] withCompletion:^ {
[_favoriteButton setImage:[UIImage imageNamed:@"favorite_yellow"] forState:UIControlStateNormal];
}];
}
}
两个完成块是相同的,除了图像名称。XCode 向else
案例发出警告:Capturing 'self' strongly in this block is likely to lead to a retain cycle
并指向_favoriteButton
. if
但是,在条件为真的情况下不会发生同样的情况。
我想这两种情况或都不应该出现警告,我不明白为什么只有后者才显示它。这是一个 Xcode 错误吗?两者都导致保留周期吗?