3

Я использую архитектуру клиентского сервера в своем приложении.Правильный способ закрытия NSURLConnection

Я использую класс NSURLConnection, теперь предположим, что я отправляю несколько запросов в цикл for и используя асинхронное соединение с методами делегирования. Итак, мой вопрос: после того, как я получил ответ от сервера, мне нужно закрыть соединение вручную и сделать этот объект ноль.

Я спрашиваю, потому что на сервере существует ограничение на максимальное количество подключений, которое должно быть выполнено, и если этот предел подключения превышает, мне нужно перезагрузить сервер, и я не могу изменить максимальный лимит подключения.

ответ

0

Пожалуйста использовали this..may помочь

[self.connection cancel]; 
self.connection = nil; 
2

Нет, не нужен, как NSURLConnection закрывает соединение само по себе при возникновении ошибки или загрузки данных.

Если вы хотите отслеживать, что на самом деле происходит, я предлагаю посмотреть на Technical Q&A QA1176. В нем описывается, как настроить среду для мониторинга каждого пакета, отправленного iPhone. Затем вы можете проверить поведение NSURLConnection самостоятельно.

+0

Спасибо. Это ответ, который я искал. – Vaibhav

1

Правильный способ освободить соединение, чтобы установить его, чтобы быть nil вместе с имуществом, используемым для получения данных от соединения:

theConnection = nil; 
receivedData = nil; 

Это из URL Session Programming Guide in the section Using NSURLConnection.

Отпустите соединение и объект данных, установив свойства (объявленные в другом месте) на ноль. Обратите внимание, что приложение реального мира обычно требует, чтобы делегат управлял более чем одним соединением за раз, поэтому эти строки обычно заменяются кодом для итерации через любые структуры данных, которые вы используете.