我在一个线程里起了一个runloop,开启了一个timer,但我发现页面返回时不走dealloc,timer无法停止,求大神帮助
#import "MyViewController.h"
@interface MyViewController ()
{
NSTimer *_timer;
}
@end
@implementation MyViewController
- (void)dealloc
{
[_timer invalidate];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeCountdownTime) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
}
- (void)changeCountdownTime
{
// do something
}
- (void)back
{
[self.navigationController popViewControllerAnimated:YES];
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
推荐写法是在 viewWillAppear: 中先写 [_timer invalidate]; 然后写 _timer = nil; 之后才会销毁 vc 然后调用 -dealloc 方法。