NSTimer を無効にすることはできません。彼は実行を続けています。
クラスAで私は持っています:
-(void)startMachine
{
NSLog(@"START THE MACHINE " );
doesOn=1;
machineClock=[NSTimer scheduledTimerWithTimeInterval:0.05
target:self
selector:@selector(recordMachine:)
userInfo:nil
repeats:YES];
....//machineClock is on the .h file in interface
}
-(void)recordMachine:(NSTimer*)timer
{
NSLog(@"recordMachine");
...
-(void)stopMachine
{
NSLog(@"STOP THE MACHINE !! " );
[machineClock invalidate];
machineClock=nil;
...
}
次に、クラス bで、次のように開始および停止します。
classAinst=[recordMachine alloc];
[classAinst startMachine]; //it starts here.
......
[classAinst stopMachine]; //it class the method to stop it,but the timer still ticks.
何が原因でしょうか? タイマーにプロパティを作成する必要がありますか? クラスaはbからのタイマーを保持しているので、停止する必要がありますか?