更改块中的实例变量

时间:2012-08-01 04:19:37

标签: objective-c xcode warnings block ivar

我对如何更改块内的实例变量感到很困惑。

接口文件(.h):

@interface TPFavoritesViewController : UIViewController {
    bool refreshing;
}

实施:

__weak TPFavoritesViewController *temp_self = self;
refreshing = NO;
[myTableView addPullToRefreshWithActionHandler:^{
    refreshing = YES;
    [temp_self refresh];
}];

正如您可能猜到的那样,当我尝试更改块内部的刷新ivar时,我会收到保留周期警告。如果没有出错,我该怎么做?

1 个答案:

答案 0 :(得分:6)

您对refreshing的分配是对self的隐含引用,它是以下内容的简写:

self->refreshing = YES;
因此,循环警告。将其更改为:

temp_self->refreshing = YES;