2013-10-03 5 views
1

J'ai besoin d'afficher les résultats du journal dans une vue texte, puis dans mon application. J'ai essayé d'utiliser performSelector dans ma séquence mais cela n'a pas fonctionné comme je le pensais. Quelqu'un peut-il me montrer comment le faire? Par exemple, lorsque je clique sur un bouton, je fais beaucoup d'opérations en dessous, et je veux afficher les journaux dans la vue texte, et ce, pas après que toute l'opération soit terminée.Impression Se connecter iOS

Plus je ne peux pas appeler performSelector plus d'une fois dans la même séquence?

est inférieure à la séquence à l'intérieur du bouton clic:

- (IBAction)Write:(id)sender { 

//do some action here 
DisplayString = @"Seq1 pass" 
[self performSelector:@selector(updateviewText) withObject:nil afterDelay:0]; 
//do some more action 
DisplayString = @"Seq2 pass" 
[self performSelector:@selector(updateviewText) withObject:nil afterDelay:0]; 
.... 
} 

Cette partie updateviewText:

-(void)updateviewText { 
     dispatch_queue_t queueNew = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 
     dispatch_async(queueNew,^ { 

     dispatch_async(dispatch_get_main_queue(),^{ 
      [self.txtViewUseCaseLOG setText:[NSString stringWithFormat:@"%@\n%@", 
             self.txtViewUseCaseLOG.text,DisplayString ]];    
     });   
    }); 
} 

Le DisplayString est un va global viable ici.

Ce code n'a pas setText au textview alors et là ... Mais comme je l'ai demandé plus tôt, je besoin de ces messages alors et là ...

+0

Montrez du code. – Wain

Répondre

0

Vous ne pouvez pas mettre à jour l'interface utilisateur de manière asynchrone. Si vous effectuez une tâche de manière asynchrone et souhaitez mettre à jour l'interface utilisateur, vous devez utiliser dispatch_sync.

Et pourquoi voudriez-vous, lorsque vous faites quelque chose asynchrone, ouvrir une autre tâche asynchrone? Ensuite, si vous n'utilisez que DisplayString dans ces deux méthodes, vous pouvez ajouter un paramètre NSString à updateViewText pour ne pas avoir besoin de la variable globale.