如何安全地执行延迟选择器iOS



viewDidAppear中,我在 3 秒后向用户显示一个弹出窗口。如果用户在计时器启动后导航到另一个viewController怎么办。所选函数将尝试执行并在超级视图不再显示在屏幕上时显示弹出窗口。应用程序不会崩溃或抛出任何错误,但我想确认这是安全的。我是否应该在选择器方法中设置一个BOOL并断言isCurrentViewYES

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

inviewDidDisappear

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

最新更新