用户退出时停止,无效并设置为Nil a NSTimer

时间:2011-08-15 20:03:14

标签: iphone objective-c ios xcode

只要按下按钮,我就有一个运行NSTimer的应用程序。但是,如果用户退出应用程序(多任务),计时器将继续运行。我如何使其无效以便时间停止并在退出应用程序时设置为nil。我可以禁用多任务吗?谢谢。 P.S如果它涉及使用AppDelegate,我如何在AppDelegate中引用NSTimer,因为它是在ViewController.h中创建的 我厌倦了使用:

#import "Some AppNameViewController.h"

无论如何,提前谢谢!

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:2)

您可以使用NSNotificationCenter,只需将计时器添加为应用程序退出时发送的消息的观察者。例如:

在viewController中:

-(void)viewDidLoad{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self.myTimer selector:@selector(invalidate) name:@"killTheTimer" object:nil];
}

在代表中:

- (void)applicationWillResignActive:(UIApplication *)application{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"killTheTimer" object:nil];
}