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.
淡淡烟草味
淡淡烟草味 2017-05-02 09:35:06
0
1
646
#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];
}
淡淡烟草味
淡淡烟草味

répondre à tous(1)
Ty80

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal