Ich habe eine for-Schleife mit drei asynchronen Methoden, und ich möchte eine Behandlung zu machen, nachdem diese 3 asynchronen Methoden abgeschlossen sind.Warte auf eine asynchrone Methode in einer for-Schleife zu beenden
-(void)getAllUsersInformations{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
for(User *user in users){
[self getUserInfo:user];
}
//Here, I want to reload the table view for example, after finishing the for loop (executing the whole three methods).
});
}
-(void)getUserInfo:(User*)user{
[self getInformations:user];
[self getExperiences:user];
[self getEducation:user];
}
Haben Sie irgendeine Technik, um dieses Ergebnis zu haben? Vielen Dank.
Sind 'getInformations',' getExperiences' und 'getEducation', selbst, asynchrone Methoden? Oder sind das alles synchrone Methoden, die Sie asynchron an eine Hintergrundwarteschlange senden? (Ihre Bearbeitung der Frage ändert die Antwort radikal.) – Rob
@Rob; Ja, sie sind asynchron! 'getAllUsersInformations'' getInformations' 'getExperiences' und' getEducation' sind asynchron. – androniennn
@androniennn kannst du die drei '-getXXX'-Methoden synchron machen? –