NSTimer调用一个使用块的函数。这个块调用self方法。 (保留周期)

时间:2014-04-07 10:24:04

标签: ios7 objective-c-blocks nstimer

我正在使用NSTimer来调用每秒刷新表视图数据的函数。 此功能使用基于块的AFNetworking调用Web服务。我正在使用__weak引用NSTimer和self。 在视图消失后,仍然没有自我解除分配。而且每秒都会调用此函数。

__weak NSTimer *timer;
 __weak id weakSelf = self;
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:weakSelf selector:@selector(loadData) userInfo:nil repeats:YES];

...

- (void)loadData{
    MessageDataController *uDC = [MessageDataController new];

    __weak ChatViewController *weakSelf = self;

    [uDC messagesForUser:self.userID WithSuccess:^(NSArray *someMessages) {

            [weakSelf loadBubbleData];

    } failure:^(NSError *error) {

        [MBProgressHUD hideAllHUDsForView:weakSelf.view animated:YES];
    }];
}

如何实现此功能。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在删除视图的代码中使计时器失效。