Как безопасно выполнить отложенный селектор iOS - PullRequest
0 голосов
/ 08 июня 2018

В viewDidAppear я показываю всплывающее окно пользователям через 3 секунды.Что делать, если пользователь переходит к другому viewController после запуска таймера.Выбранная функция попытается выполнить и показать всплывающее окно, когда суперпредставление больше не отображается на экране.Приложение не вылетает и не выдает никаких ошибок, но я хочу подтвердить, что это безопасно.Должен ли я установить BOOL и утверждать isCurrentView равно YES, в методе выбора?

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self performSelector:@selector(showPopup) withObject:nil afterDelay:2.5];
}

1 Ответ

0 голосов
/ 08 июня 2018

в viewDidDisappear

-(void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:(BOOL)animated];       
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showPopup) object:nil];
}
...