Domanda

Ho un'azione che inizia quando l'utente tocca un pulsante sullo schermo (ad esempio "Importa"). Allo stesso tempo, un UIToolbar appare sulla parte inferiore dello schermo, che offre all'utente la possibilità di annullare questa azione. Come posso correttamente inviare un messaggio annullare la funzione iniziale? Se l'utente preme "Cancel" Io non voglio il "Importa" per continuare. In teoria avrei potuto impostare il tutto come un thread separato (che ho potuto poi uccidere), ma non sono sicuro di quello che è il modo corretto di fare questo in modo da poter pulire dopo se stessa. Quali sono alcune altre strategie per essere in grado di "uccidere" una funzione che l'utente ha già iniziato?

È stato utile?

Soluzione

Creare un'operazione separata usando qualcosa come:

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

Questo _backgroundWorker modo verrà eseguita senza fermare thread dell'interfaccia utente principale.

Una Annulla viene premuto il pulsante, impostare una variabile interna e verificare il suo valore all'interno _backgroundWorker.

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