Frage

In meiner App habe ich eine Ibaktion und darin habe ich 2 verschiedene Anweisungen mit einem "if"

 if (i == 0)  //do instruction set 1
 if (i == 1) //do instruction set 2
 // and everytime I push button i change from 0 to 1 or from 1 to 0

Das Problem ist, dass wenn ich wiederholt die Taste dieser Ibaktion drücke

Beispiel = Drücken Sie die Taste, es wird Anweisungssatz 1 ausgeführt. Wenn ich ein anderes Mal die Taste drücke, sollte sie nicht funktionieren, da es seine Arbeit nicht beendet hat und ich das Ende des Anweisungssatzes 1 warten möchte, um die Taste der Taste zu wiederholen.

Verstehst du?

War es hilfreich?

Lösung

Angenommen, Sie haben BOOL workInProgress Variable in Ihrer Klasse:

- (IBAction)action {
    if (!workInProgress) {
        workInProgress = YES;
        if (i == 0) {
            // do something that in the end sets workInProgress to NO
        } else if (i == 1) {
            // do something else that in the end sets workInProgress to NO
        }
    }
}

Andere Tipps

Verwenden Sie einen BOOL -Wert, setzen Sie ihn zu Beginn Ihres Anweisungssatzes auf Nein und kehren Sie zu Ja nach. Wenn der Wert nein ist, dann tun Sie irgendetwas, was nicht tun

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top