我想用不同的时间间隔多次调用一个方法

时间:2012-11-01 07:14:44

标签: iphone objective-c ios

我是一个方法 - (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];

有没有人知道更好的方法?

3 个答案:

答案 0 :(得分: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];

}

答案 1 :(得分:0)

您可以根据需要使用NSTimer。您需要添加用于设置计时器的逻辑。将时间作为参数传递给NSTimer并根据需要执行该方法。

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

有关NSTimer Class的更多信息:NSTimer Apple Docs Ref

希望它对你有用。

答案 2 :(得分:0)

我能想到的另一种方法是你可以创建一个每秒调用一次的计时器函数然后你可以使用一个全局变量,你可以在每次调用时增加其值,然后使用switch语句你可以做出决定< / p>