2010-02-10 3 views
0

Я пытаюсь сделать два NSURLRequests друг после друга. Второй запрос основан на результатах первого. Мой первый запрос работает нормально. Я назначил делегата себе, и мне сообщают, когда когда запрос будет завершен (в методе connectionDidFinishLoading).Выполнение 2 NSURLRequests друг после друга

Мой вопрос сейчас, как я могу сделать второй запрос и быть проинформированным, когда это будет сделано? Должен ли я создать второй делегат, который обрабатывает мой запрос, или есть ли какой-либо другой/лучший способ справиться с этим?

Спасибо за помощь.

ответ

1

То, что я делал в прошлом, это перенос кода для делегата NSURLConnection в параллельном классе NSOperation. Этот абстрактный класс берет на себя всю работу по настройке и управлению соединением и его состоянием, а подклассы его выполняют фактическую работу с данными при завершении соединения. Например, суперкласс вызывает метод performWork:(NSData *)data, который переопределяется подклассами и устанавливает переменную экземпляра для результата. Вы можете использовать класс контроллера для управления объектами в NSOperationQueue и создавать новые операции при завершении предыдущих операций. Таким образом, каждый запрос представляет собой единое управляемое устройство, запросы необязательно должны знать друг о друге, и вы не копируете и не вставляете код для управления каждым соединением.