invalidate
scheduleTimerWithTimeInterval:target:selector:userInfo:repeats: が提供する NSTimerにメッセージを送信する必要があります。たとえば、クラスのプロパティまたは iVar でメソッドが返す NSTimer を割り当て、10 秒後invalidate
にそれを呼び出します。
例:
.h:
@interface myClass{
NSTimer *myT;
}
[...]
.m:
[...]
{
myT = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(getLevel:) userInfo:nil repeats: YES];
[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(stop) userInfo:nil repeats:NO];
}
-(void)stop{
[myT invalidate];
}
[...]
NSTimer
必要に応じて、何らかのfinish
フラグを実装し、メソッドにメッセージを送信した回数を追跡することで、別のメッセージを回避できgetLevel
ます。これは 0.5 秒ごとであるため、20 回になります。
しかしNSTimer
、他のタイマーに関係なく10秒であることを知っているので、オブジェクトを2つにしたいと思います。これは、周波数を上下に変更する可能性があります...