(NSTimer) erstellen Sie ein Timer-Countdown

Ich bin versucht, zu erstellen eine einfache Countdown-Timer, so dass, wenn ein Spieler in mein Spiel, der timer beginnt, von 60 runter auf 0. Es scheint einfach, aber ich bin immer verwirrt, wie ich dieses Schreibe.

Bisher habe ich eine Methode in meinem GameController.m, der wie folgt aussieht:

-(int)countDownTimer:(NSTimer *)timer {
    [NSTimer scheduledTimerWithTimeInterval:-1
                                 invocation:NULL
                                    repeats:YES];
    reduceCountdown = -1;
    int countdown = [[timer userInfo] reduceCountdown];
    if (countdown <= 0) {
        [timer invalidate];
    }
    return time;
}

Beim start des Spiels, die ich initialisiert die integer-Zeit bei 60. Das label wird dann festgelegt wird, innerhalb ViewController. Aber in dem moment, wenn ich den code kompilieren, es zeigt nur das Etikett bei 60 und nicht Dekrement überhaupt.

Jede Hilfe wäre sehr geschätzt - ich bin neu in Objective-C.


BEARBEITEN

Mit etwas Hilfe habe ich jetzt getrennt, den code in 2 getrennten Methoden. Der code sieht nun wie folgt aus:

-(void)countDown:(NSTimer *)timer {
    if (--time == 0) {
        [timer invalidate];
        NSLog(@"It's working!!!");
    }
}

-(void)countDownTimer:(NSTimer *)timer {
    NSLog(@"Hello");
    [NSTimer scheduledTimerWithTimeInterval:1
                                      target:self
                             selector:@selector(countDown:)
                                      userInfo:nil
                                      repeats:YES];
}

JEDOCH, der code immer noch nicht richtig läuft und wenn ich rufen Sie die Methode [Spiel countDownTimer] aus meiner Sicht-Controller bricht es zu sagen: "unrecognized selector geschickt Instanz". Kann jemand erklären, was ist hier falsch?

InformationsquelleAutor Matthew Nieuwenhuys | 2013-03-09

Schreibe einen Kommentar