6
我对如何更改块内的实例变量非常困惑。更改块中的实例变量
接口文件(.h)中:
@interface TPFavoritesViewController : UIViewController {
bool refreshing;
}
实施:
__weak TPFavoritesViewController *temp_self = self;
refreshing = NO;
[myTableView addPullToRefreshWithActionHandler:^{
refreshing = YES;
[temp_self refresh];
}];
正如你可能已经猜到,我得到了保留周期警告,当我试图改变内部的清凉伊娃该块。我如何做到这一点而不会出现错误?
它不会使用此代码构建。我得到以下错误:由于竞争条件引起的可能的空值,不允许解引用__weak,请首先将其分配给强变量。我想我通过添加这个工作来实现它:__strong TPRideListView * strong_self = temp_self; strong_self-> refreshing = YES; – 2012-08-01 04:49:44
小心;解引用弱指针会导致崩溃。最好从块内部的弱块做出强有力的指针,检查无,然后使用它。 – 2012-08-01 04:50:27
@KeiranPaster - 道歉我错过了第二次警告;如果你的代码保持良好的警告,你的工作*提供*你的对象呆在附近(即'self'是有效的);该代码不处理“无”值的可能性。我假设你知道它是,如果你不... – CRD 2012-08-01 10:23:18