J'utilise Comment puis-je le faire? P>
quelque chose comme, merci p> nsoperationqueur code> et
nsoperation code> pour exécuter une fonction en arrière-plan clic.
Mais je veux être capable, lorsque l'utilisateur clique sur un bouton, arrêtez cette opération. p>
[CURELOPERATION STOP]; CODE>
Annuler code> - ne fonctionnera pas. Je veux m'arrêter immédiatement. P>
3 Réponses :
Vous devez appeler la méthode -cancel code> et l'opération elle-même doit prendre en charge être annulée en surveillant le
iScancéd code> propriété / clavier et en toute sécurité lorsque sa valeur devient < Code> oui code>. Si la nsopération est la vôtre, vous devrez probablement créer une sous-classe personnalisée pour mettre en œuvre cette fonctionnalité. Vous ne pouvez pas (en toute sécurité) forcer une opération arbitraire à cesser immédiatement. Il doit supporter d'être annulé. P>
Vous utilisez Annuler code> et testez si
auto code> (le
nsoperation code>) a été annulé pendant l'exécution. P>
Vous ne pouvez pas arrêter immédiatement en utilisant quoi que ce soit Apple fournit avec de cette façon, vous aurez des choses arrêtées relativement bientôt. P> Si vous cherchez à forcer vraiment le fil à arrêter, vous devrez peut-être regarder dans la manipulation du signal. Il y a un exemple fileté ici . Envoi d'un signal personnalisé à un fil spécifique, vous pourrez peut-être terminer ce fil d'une manière ou d'une autre. Ce sera beaucoup plus de travail, cependant, et est probablement beaucoup plus de problèmes que ce qu'il vaut. P> p> Nsoperation code>. Vous pouvez utiliser
- [Annuler] code> au fur et à mesure que d'autres personnes ont suggéré ici, mais l'opération actuelle fonctionnera toujours jusqu'à l'achèvement. Une façon de se rapprocher d'utiliser
- [iScancellé] code> à l'intérieur de votre opération et saupoudrer que tout au long du code (surtout dans des boucles longues en cours d'exécution). Quelque chose comme: