Maison  >  Questions et réponses  >  le corps du texte

objective-c - 我在一个线程里起了一个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];
}
淡淡烟草味淡淡烟草味2727 Il y a quelques jours599

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-05-02 09:37:06

    La méthode d'écriture recommandée consiste à écrire d'abord [_timer invalidate]; puis à écrire _timer = nil; dans viewWillAppear: avant de détruire le vc et d'appeler la méthode -dealloc.

    répondre
    0
  • Annulerrépondre