0

タイマーを備えたこのアプリがあり、そのタイマーのランダムなポイントでボタンを表示できるようにしたいと考えています。ボタンが消えるまでの時間を稼ぐためにボタンを取得する必要があるゲーム設定のようなものです。私はすでにいくつかのコードを持っていますが、問題は私がすでに持っているタイマーが台無しになっていることです(ラベルにリンクされているのでわかります.1ではなく2で下がるので台無しになり、これはボタンをタイマーで表示および非表示にするコードがあります。

めちゃくちゃになっているタイマーのコードは次のとおりです。

-(IBAction)Ready:(id)sender {

    [self performSelector:@selector(TimerDelay) withObject:nil afterDelay:1.0];
    [self performSelector:@selector(randomTimer) withObject:nil afterDelay:0.5];


}

-(void)TimerDelay {

    MainInt = 36;

    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(countDownDuration)
                                           userInfo:nil
                                            repeats:YES];
}

ボタンのコードは次のとおりです。

    -(IBAction)Ready:(id)sender { //the same ready action as above

        [self performSelector:@selector(TimerDelay) withObject:nil afterDelay:1.0];
        [self performSelector:@selector(randomTimer) withObject:nil afterDelay:0.5];


    }

-(void)TimerDelay {

    MainInt = 36;

    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(countDownDuration)
                                           userInfo:nil
                                            repeats:YES];
}

- (void)randomTimer {

    NSInteger randomTime = arc4random_uniform(0); //Some number between 0 and 9

    timer = [NSTimer scheduledTimerWithTimeInterval:randomTime
                                                  target:self
                                                selector:@selector(showButton)
                                                userInfo:nil
                                                 repeats:NO];
}


- (void)showButton {

    if(self.plus5.hidden == YES) {

        self.plus5.hidden = NO;
    }
    else {

        self.plus5.hidden = YES;
    }

    [self TimerDelay]; //Call random timer function again to run this method at a future random time
}
4

2 に答える 2