recherche

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

objective-c - J'ai démarré une boucle d'exécution dans un thread et démarré un minuteur, mais j'ai constaté que dealloc n'était pas utilisé lorsque la page revenait et que le minuteur ne pouvait pas être arrêté. Veuillez m'aider.

#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];
}
淡淡烟草味淡淡烟草味2819 Il y a quelques jours660

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