そのようなランループを設定した場合:
NSRunloop* loop = [NSRunloop currentRunLoop];
[runLoop addTimer:anyTimer forMode:NSDefaultRunLoopMode];
もう一度止めてもいいですか?または、さらなるアクションをトリガーするために使用する通知を無視する唯一の方法ですか?
わかりました、私は問題の例を挙げます:
-(void)blinkeffekt:(double)pollingTime{
NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
if (pollingTime != 0) {
NSTimeInterval interval =(double)pollingTime / 1000;
NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(polling) userInfo:nil repeats:YES];
[runLoop addTimer:timer forMode:NSDefaultRunLoopMode];
}
else {
[timer invalidate];
}
}
確かに、いくつかのエラーがあります - 間違いありません。しかし、それは私の問題を示していると思います。これは今までの答えでは本当に解決できません。
タイマーを実行し、後で停止する必要があります。理想的には、クラス内の別の機能から外します。しかし、その後、「タイマー」にアクセスできなくなり、そのような「メッセージ」が利用可能かどうかをrunloopは把握できません。関数の呼び出しごとに新しいタイマーを登録すると、非常に効果がなくなります。