Pregunta

I tiene una acción que se inicia cuando el usuario toca un botón en la pantalla (por ejemplo, "Importar"). Al mismo tiempo, un UIToolbar aparece en la parte inferior de la pantalla que le da al usuario la opción de cancelar esta acción. ¿Cómo puedo cancelar correctamente enviar un mensaje a la función inicial? Si el usuario selecciona "Cancelar", no quiero que la "importación" para continuar. En la teoría de que podía configurarlo como un hilo separado (que entonces podría matar), pero no estoy seguro de lo que es la forma correcta de hacer esto para que pueda limpiar después de sí mismo. ¿Cuáles son algunas otras estrategias para ser capaz de "matar" una función que el usuario ya ha comenzado?

¿Fue útil?

Solución

Crea una operación separada usando algo como:

NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self 
      selector: @selector(_backgroundWorker) 
      object: nil] autorelease]];

Esta _backgroundWorker manera se ejecutará sin parar hilo principal interfaz de usuario.

Uno se pulsa el botón Cancelar, establecer una variable interna y comprobar su valor dentro _backgroundWorker.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top