2016-11-03 1 views
1

Derzeit arbeite ich an einer Anwendung, in der ich 8 asynchronen Web-Service-Aufruf in Folge haben. Um eine Antwort zu erhalten, verwende ich Delegate-Methode. Antwort des Web-Service-Aufrufs enthält "Id" -Feld, das ich in aufeinanderfolgenden Web-Services übergeben muss. Kann mir bitte jemand helfen, wie man das erreicht? Vielen Dank im Voraus.warte auf Asynchrone Web-Service-Anruf-Antwort, um nächsten Web-Service zu verarbeiten ios

+0

Sie haben alles versucht? Nachdem Sie die Antwort des ersten Webservice erhalten haben, analysieren Sie die Daten und holen Sie die ID. Rufen Sie dann den nächsten Webservice mit dieser ID an und so weiter ... – Signare

Antwort

1

Vielen Dank für Ihre Antwort und Zeit.
In meinem Szenario habe ich meine Frage mit einfachen 1 bool Variable zu lösen. Und ich habe Array mit Web-Service-Methoden Namen, die durch eine Methode aufgerufen wurden.
Ich habe folgende Schritte folgen:
1) nehmen Sie eine bool-Variable und setzen Sie diese auf false.
2) Rufen Sie zuerst den Webdienst auf, entfernen Sie das Objekt für die erste Webdienstmethode aus dem Array und kehren Sie von der Methode zurück, und warten Sie auf die Antwort.
3) Wenn ich die Antwort bekomme, wo ich die "ID" habe, zuerst überprüfe ich für die Bool-Variable auf falsch. Wenn dies der Fall ist, aktualisieren Sie die bool-Variable und machen Sie sie wahr. Und rufen Sie die Methode mit dem Array der Web-Service-Aufrufmethode auf.

0

Try-Block in der Ziel-C unter Verwendung von folgendem Code

-(void)getResponse:(NSString *)url AndWithCallback:(void(^)(BOOL success, id responseObject))callback{ 
     if(data != nil){ 
      callback(YES,@"Your object"); 
     } 
     else{ 
      callback(NO,@"pass nil"); 
     } 
    } 

Invoke Methode:

[self getResponse:@"your url" AndWithCallback:^(BOOL success, id responseObject) { 
     NSLog(@"%@",responseObject); 
     if(success){ 
     // call another webservice 
     } 

}];

aus: https://stackoverflow.com/a/40178081/3901620

Verwandte Themen