如何等待while循环?
问题描述:
这里是我的代码:如何等待while循环?
float interval = 0.03;
while (interval > 0.005) {
timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
NSLog(@"%f", interval);
interval = interval - 0.005;
}
我怎样才能让while循环每次循环后等待的时间具体数额?我一直在寻找像sleep或者performSelector这样的东西:withObject:afterDelay但是他们既不工作也不知道如何使用它们......有些帮助吗?
答
你可以使用一个递归结构:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
[self recursiveMethode:[NSNumber numberWithDouble:0.3]];
}
-(void)onTimer
{
NSLog(@"timer");
}
-(void)recursiveMethode:(NSNumber *)interval
{
timer = [NSTimer scheduledTimerWithTimeInterval:interval.doubleValue target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
NSLog(@"%f", interval.doubleValue);
double delay = 1;
[self performSelector:@selector(recursiveMethode:) withObject:[NSNumber numberWithDouble:interval.doubleValue - 0.05] afterDelay:delay];
}
+2
该函数不是递归的,它是重复的。 – CodaFi 2013-03-16 19:02:11
+0
重复的功能是一个特殊的递归功能。 – HackingOtter 2013-03-16 20:55:58
'sleep'? 'usleep'? '[NSThread sleepForTimeInterval:]'?拿你的选择。 – 2013-03-16 14:55:25
@HinataHyuga究竟应该在那里做什么评论?我没有看到它的相关性。 – 2013-03-16 14:56:04
睡觉,睡觉,另一个不工作,因为它暂停所有的应用程序,直到完成时间...我不希望发生这种情况,我想在减少间隔后等待5秒。 – 2013-03-16 15:00:03