Jak mogę poczekać, aż delegat NSURLConnection zakończy się przed wykonaniem następnej instrukcji?
To było trudne do przeszukania. Znalazłem podobne pytanie,iOS 5 Poczekaj, aż delegat skończy przed wypełnieniem tabeli?, ale zaakceptowaną odpowiedzią było „Odśwież widok tabeli” i to mi nie pomaga. Inne wyniki, które znalazłem, były zazwyczaj w c #.
Mam aplikację, która strumieniuje z iPhone'a na serwery Wowza. Kiedy użytkownik uderza w rekord, generuję unikalny identyfikator urządzenia, a następnie wysyłam go do skryptu PHP na serwerze, który zwraca dokument JSON z ustawieniami konfiguracyjnymi (w tym łącze zrzutu rtmp).
Problem polega na tym, że metody delegowania są asynchroniczne, ale muszę uzyskać ustawienia konfiguracji przed kolejnymi wierszami kodu w moim- (IBAction)recordButtonPressed
metoda, ponieważ kod ten określa ustawienia profilu, a następnie zapisy oparte na tych ustawieniach.
Zdałem sobie sprawę, że mogę zrobićNSURLConnection
w-recordButtonPressed
tak jak obecnie, a następnie kontynuuj kod instalacyjnywewnątrz metoda delegowanaconnectionDidFinishLoading
(lub po prostu obuduj konfigurację i metodę wywołaj ją stamtąd), ale to poświęca spójną konstrukcję dla funkcjonalności i jest do bani.
Czy nie ma czegoś prostegowaitUntilDelegateIsFinished:(BOOL)nonAsyncFlag
flaga, którą mogę wysłać do delegatora, aby móc wykonywać sekwencyjne operacje, które pobierają dane z sieci?