0

10 秒後にメソッドを呼び出すタイマーを開始しました。タイマーは didFinishLaunchingWithOptions から開始します。正常に動作しますが、ログアウト時に別の UISubclass からそのタイマーを停止したいと考えています。これを行う方法私のコードは

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    [NSThread sleepForTimeInterval:2.0];

    [self.window addSubview:viewController.view];
    [self setupTimer];
    [self.window makeKeyAndVisible];

    return YES;
}
-(void)setupTimer;
{
    timer = [NSTimer timerWithTimeInterval:10 
                                    target:self
                                  selector:@selector(triggerTimer:)
                                  userInfo:nil
                                   repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}

-(void)triggerTimer:(NSTimer*)timer;
{
    NSLog(@"===============this method is call after every 10            second===========================");
    Getlocation *object=[[Getlocation alloc] init];
    [object updatelocation];
}
  -(void)stopTimer:(NSTimer*)timer;
 {
   [timer invalidate];
   timer=nil;
 }
4

3 に答える 3

0

ログアウトの ButtonAction メソッドにコードを記述します。

-(IBAction)LogOutButtonPressed:(id)送信者 {

[タイマー無効化]; タイマー = ゼロ; 【タイマー解除】;

}

于 2012-08-22T09:43:57.383 に答える
0

NSTimer のオブジェクトを取得します。
メソッドを呼び出したい場所にこの行を書きます

timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(NEWTIMER) userInfo:nil repeats:YES];

このコードをそこに書いて、タイマーを停止します。

[timer invalidate];
timer = nil;
[timer release];

アプリがバックグラウンドになったときにタイマーを停止したい場合は、このコードをこのメソッドに記述する必要があります。

- (void)applicationWillEnterForeground:(UIApplication *)application
{
   [timer invalidate];
   timer = nil;
   [timer release];
} 
于 2012-08-22T08:40:07.047 に答える
0
if([timer isValid])
     [timer invalidate];

timer = nil;
于 2012-08-22T08:34:09.580 に答える