我用的是这样的NSTimer
:
timer = [NSTimer scheduledTimerWithTimeInterval:30.0f target:self selector:@selector(tick) userInfo:nil repeats:YES];
当然,NSTimer
将保留目标,这将创建一个保留周期.此外,self
不是UIViewController,所以我没有像viewDidUnload
这样的东西,可以使计时器失效以打破循环.所以我想知道我是否可以使用弱引用:
__weak id weakSelf = self;
timer = [NSTimer scheduledTimerWithTimeInterval:30.0f target:weakSelf selector:@selector(tick) userInfo:nil repeats:YES];
我听说计时器must会失效(我想是从运行循环中释放它).但我们可以在我们的交易中做到,对吗?
- (void) dealloc {
[timer invalidate];
}
这是一个可行的 Select 吗?我见过很多人处理这个问题的方法,但我还没有见过.