我对如何在块内更改实例变量感到非常困惑。
接口(interface)文件(.h):
@interface TPFavoritesViewController : UIViewController {
bool refreshing;
}
实现:
__weak TPFavoritesViewController *temp_self = self;
refreshing = NO;
[myTableView addPullToRefreshWithActionHandler:^{
refreshing = YES;
[temp_self refresh];
}];
您可能会猜到,当我尝试更改该块内部的刷新ivar时,会收到一个保留周期警告。我如何做到这一点而又不会出错?
最佳答案
您对refreshing
的分配是对self
的隐式引用,它是以下各项的简写:
self->refreshing = YES;
因此出现周期警告。更改为:
temp_self->refreshing = YES;