0

これが私のコードです:

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のようなものを検索してきましたが、それらが機能しないか、使用方法がわかりません...助けてください。

4

1 に答える 1

0

再帰的な構造を使用できます。

    - (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];
}
于 2013-03-16T18:05:39.630 に答える