Ich möchte eine Methode aufrufen, die einen Wert von ihrem Beendigungshandler zurückgibt. Die Methode führt asynchron aus und ich möchte keinen Wert zurückgeben, bevor der gesamte Text der Methode ausgeführt wurde. Hier ist ein fehlerhafter Code, um zu veranschaulichen, was ich erreichen möchte:
%Vor% Ich möchte nicht, dass die Methode getCurrentClient
einen Wert zurückgibt, bis die NXOAuth2Request
beendet ist. Ich kann den aktuellen Client auch nicht innerhalb des Antworthandlers der Anfrage zurückgeben. Also, was sind meine Optionen?
Sie müssen getCurrentClient
ändern, um einen Abschlussblock aufzunehmen, anstatt einen Wert zurückzugeben.
Zum Beispiel:
%Vor% Es ist wichtig daran zu denken, dass getCurrentClient
sofort zurückkehrt, während die Netzwerkanforderung an einen anderen Thread gesendet wird. Vergessen Sie nicht, dass Ihr Handler auf dem Hauptthread ausgeführt werden muss, wenn Sie die Benutzeroberfläche mit dem Antworthandler aktualisieren möchten. .
Tags und Links objective-c ios objective-c-blocks asynchronous return