2010-11-06 4 views
0

Si je lier un IBAction à plusieurs boutons, si plusieurs appels à cette IBAction se faisaient simultanément, cela provoquerait des interférences ou un plantage. Chacun devra-t-il attendre l'autre ou est-il concurrent?Lier un IBAction à plusieurs boutons?

Merci

Répondre

4

Les événements de l'interface utilisateur (pressions de bouton, etc.) sont traités un par un par le thread principal. Sauf si vous appelez spécifiquement votre méthode IBAction à partir de plusieurs threads, et non seront exécutés simultanément. En d'autres termes, les actions déclenchées par les événements de l'interface utilisateur sont exécutées de manière séquentielle. Chaque action se terminera avant le début de la suivante.

Il n'est pas nécessaire d'écrire des méthodes distinctes (mais identiques) pour vos boutons car le traitement événement par événement du thread principal garantit que la méthode action est appelée séquentiellement, une fois pour chaque pression sur un bouton. Si vous écrivez une méthode d'action distincte pour chaque bouton, ces méthodes d'action seront toujours exécutées une par une().

+1

Merci. Je ne sais pas ce que je pensais. Donc, plusieurs appels à la même IBAction ne vont pas tomber en panne, il va juste les mettre en file d'attente. Merci. Je peux réduire la taille du code alors. – jarryd

1

Ils devront attendre l'un l'autre pour finir.

+0

Je vais le garder tel quel, 1 pour chaque bouton. Vous vouliez réduire le code :( – jarryd

+0

Vous vouliez réduire le code? Écrire la même chose deux fois est probablement plus de code qu'écrire une fois ... – Emil

+0

??? Je voulais réduire le code en reliant un IBAction à plusieurs boutons au lieu de 1 pour chacun? Merci à la réponse ci-dessus par James ceci est résolu – jarryd

Questions connexes