C'è un modo più semplice di aspettare per un determinato periodo di tempo a Cocoa di quello che ho messo a punto sotto?attesa per una durata specifica in Cocoa
- (void) buttonPressed {
[self makeSomeChanges];
// give the user some visual feedback and wait a bit so he can see it
[self displayThoseChangesToTheUser];
[self performSelector:@selector(buttonPressedPart2:) withObject:nil afterDelay:0.35];
}
- (void) buttonPressedPart2: (id)unused {
[self automaticallyReturnToPreviousView];
}
Giusto per essere chiari, non c'è funzionale problema con questo codice - la mia unica carne bovina è un stilistica uno. Nel mio caso il flusso è abbastanza semplice che funziona, ma cercare di incapsulare o gettare in alcuni condizionali e le cose potrebbero girare brutto. E 'stato sorta di fastidioso a me che non riuscivo a trovare un modo per aspettare e poi tornare a quello stesso punto nel codice come questo (fittizia) Esempio:
- (void) buttonPressed {
[self doStuff];
[UIMagicUnicorn waitForDuration:0.35];
[self doStuffAfterWaiting];
}
ed entrambi dei quali saranno bloccare il filo di fare qualsiasi altra cosa. male, se è nella U.I. filo. – pestilence669
Vero. Se hai bisogno che l'interfaccia utente sia reattiva durante questo periodo, l'approccio suggerito nella domanda, un NSTimer che si attiva una volta (come suggerisci tu), o una discussione in background che esegue questo ritardo sarebbe meglio. –
Grazie - questo è quello che mi stavo chiedendo, probabilmente ci saremmo imbattuti in esso se "dormire" fosse uno dei tanti sinonimi di "attesa" su cui avevo pensato di cercare. Grazie anche a Pestilenza per gli avvertimenti su quando * non * usarli. –