Domanda

Nella mia app ho un IBAction e al suo interno ho 2 istruzioni diverso con un "se"

 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

il problema è che se io premere ripetutamente il pulsante di questa IBAction che non funzionano bene perché l'IBAction precedente non ha terminato la sua istruzione set1

= esempio premere il pulsante, si esegue set di istruzioni 1, se spingo un'altra volta il pulsante che non dovrebbe lavoro perché esso non ha terminato il suo lavoro e voglio aspettare la fine del set di istruzioni da 1 a ripetere la spinta di pulsante.

Hai capito?

È stato utile?

Soluzione

Supponendo di avere variabili BOOL workInProgress nella classe:

- (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
        }
    }
}

Altri suggerimenti

utilizzare un valore booleano, impostarlo su NO, all'inizio del set di istruzioni, e di nuovo al SI after.if il valore è NO, non fare nulla

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top