2012-05-11 81 views
6

Żądania HTTP wykonane za pomocą NSURLConnection są sterowane zdarzeniami. To sprawia, że ​​rzeczy są trochę dziwne, kiedy trzeba wydać powiedzmy trzy prośby jedna po drugiej, gdzie każde żądanie wykorzystuje informacje zwrócone przez poprzednią.Najlepszy sposób wysyłania serii żądań HTTP za pomocą NSURLConnection

jestem przyzwyczajony do robienia to tak:

response1 = request1(); 
response2 = request2(response1); 
response3 = request3(response2); 

Ale jedynym sposobem udało mi się znaleźć jak to zrobić z NSURLConnection jest mieć connectionDidFinishLoading: zrobić następny wniosek. Ale gdy liczba kolejnych zapytań wzrasta, może to być kłopotliwe.

Jaki jest idiomatyczny sposób obsługi kolejnych żądań HTTP za pomocą kakao?

Odpowiedz

7

Można owijać żądania w NSOperation, a następnie definiować zależności operacyjne, tak aby każde żądanie musiało czekać na swoje zależne żądania przed wykonaniem.

Z Apple Docs:

Zależności są wygodnym sposobem na wykonanie operacji w określonej kolejności. Można dodawać i usuwać zależności dla operacji za pomocą metod addDependency: i removeDependency:. Domyślnie obiekt operacji, który ma zależności, nie jest uważany za gotowy, dopóki nie zakończy się wykonywanie wszystkich jego zależnych obiektów operacji. Po zakończeniu ostatniej operacji zależnej obiekt operacji staje się gotowy do wykonania.

0

Zalecam korzystanie z biblioteki innej firmy o nazwie MKNetworkKit. Potrafi zająć się ciężką pracą, dzięki czemu możesz skupić się na kluczowych aspektach swojej aplikacji. Możesz go znaleźć here.

Powiązane problemy