Wie kann ich warten, bis ein NSURLConnection-Delegat fertig ist, bevor ich die nächste Anweisung ausführe?

Dies war schwer zu finden. Ich habe eine ähnliche Frage gefunden,iOS 5 Warten Sie, bis der Delegat fertig ist, bevor Sie eine Tabelle auffüllen?, aber die akzeptierte Antwort war "Tabellenansicht aktualisieren", und das hilft mir nicht. Die anderen Ergebnisse, die ich gefunden habe, waren in c #.

Ich habe eine App, die vom iPhone auf Wowza-Server streamt. Wenn der Benutzer einen Datensatz aufruft, erstelle ich eine eindeutige Geräte-ID und sende sie an ein PHP-Skript auf dem Server, das ein JSON-Dokument mit Konfigurationseinstellungen zurückgibt (einschließlich des Links zum Erstellen eines RTMP-Speicherauszugs).

Das Problem ist, dass die Delegatmethoden asynchron sind, aber ich muss die Konfigurationseinstellungen vor den nächsten Codezeilen in meinem abrufen- (IBAction)recordButtonPressed Methode, da dieser Code die Profileinstellungen festlegt und dann basierend auf diesen Einstellungen aufzeichnet.

Ich habe erkannt, dass ich das schaffen könnteNSURLConnection im-recordButtonPressed wie ich es momentan bin, und dann den setup code fortsetzenInnerhalb die Delegate-MethodeconnectionDidFinishLoading (oder kapseln Sie einfach das Setup und die Methode, die es von dort aufrufen), aber das opfert kohärentes Design für die Funktionalität und das ist zum Kotzen.

Gibt es nicht einige einfachewaitUntilDelegateIsFinished:(BOOL)nonAsyncFlag flag Ich kann an den Delegator senden, damit ich sequentielle Vorgänge ausführen kann, die Daten aus dem Web abrufen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage