0

私はメソッド -(void)showLyrics{} を別のメソッドから呼び出したいのですが、一定の時間が経過すると、連続する各呼び出し間の時間呼び出しが異なります。私はこのようにしています

[self performSelector:@selector(showLyrics) withObject:nil afterDelay:2];

[self performSelector:@selector(showLyrics) withObject:nil afterDelay:5];

[self performSelector:@selector(showLyrics) withObject:nil afterDelay:10];

[self performSelector:@selector(showLyrics) withObject:nil afterDelay:12];

体はより良い方法を知っていますか??

4

3 に答える 3

1

一度電話して

-(void)viewDidLoad {
    [self performSelector:@selector(showLyrics) withObject:nil afterDelay:2];
}

やりたいことをやってから、次のスケジュールを立てる

-(void)showLyrics {
    int d=2;
    //do your thing
    d+=3;//or whatever
    [self performSelector:@selector(showLyrics) withObject:nil afterDelay:d];

}

于 2012-11-01T07:27:30.820 に答える
0

必要に応じて NSTimer を使用できます。タイマーを設定するためのロジックを追加する必要があります。時間をパラメーターとして NSTimer に渡し、必要に応じてメソッドを実行します。

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:<accumSecs>
    target:self selector:@selector(showLyrics) 
    userInfo:nil repeats:NO];

NSTimer クラスの詳細: NSTimer Apple Docs Ref

それがあなたのために働くことを願っています。

于 2012-11-01T07:27:36.937 に答える
0

私が考えることができる別の方法は、毎秒呼び出されるタイマー関数を作成し、呼び出しごとに値を増やすことができるグローバル変数を取得し、おそらくswitchステートメントを使用して決定を下すことができるということです

于 2012-11-01T08:18:42.913 に答える