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