¿Existe alguna manera más directa de esperar una cantidad específica de tiempo en Cocoa que la que se me ocurrió a continuación?Esperando una duración especificada en 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];
}
Para que quede claro, no hay funcional problema con este código - Mi carne es un estilística uno. En mi caso, el flujo es lo suficientemente simple como para que funcione, pero trate de encapsularlo o agregar algunos condicionales y las cosas podrían ponerse feas. Se ha especie de molestando a mí que no podía encontrar una manera de esperar y luego regresar a ese mismo punto en el código como este (ficticio) ejemplo:
- (void) buttonPressed {
[self doStuff];
[UIMagicUnicorn waitForDuration:0.35];
[self doStuffAfterWaiting];
}
y ambos de los cuales bloquear el hilo de hacer cualquier otra cosa. malo, si está en el U.I. hilo. – pestilence669
Es cierto. Si necesita que la IU responda durante este período, el enfoque sugerido en la pregunta, un disparo NSTimer una vez (como usted sugiere) o un hilo de fondo que realice este retraso sería mejor. –
Gracias - eso es lo que me preguntaba, probablemente habría tropezado con él si 'sueño' hubiera sido uno de los muchos sinónimos de 'espera' que había pensado buscar. Gracias también Pestilence por las advertencias sobre cuándo * no * usar estos. –