Как я могу избежать повреждения данных с несколькими экземплярами NSURLConnection

StackOverflow https://stackoverflow.com/questions/4357734

Вопрос

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

Мой вопрос: какой лучший способ избежать этого? Там, кажется, не является способом сделать каждый экземпляр NSURLConnection сохранять до отдельной переменной данных или сделать каждый экземпляр ожидания до тех пор, пока предыдущий экземпляр не будет выполнен перед сохранением.

Мой код в основном следует примеру Apple здесь, за исключением случаев функции LoadData несколько раз, что создает NSURLREQUEST и NSURLCOUNTECT. http://developer.apple.com/library/mac/#documentation/cocoa/Coneptual/urlloadingsystem/tasks/usingnsurlconnection.html.

Заранее благодарю за любую помощь.

Это было полезно?

Решение

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

Образец Apple поддерживает один экземпляр NSMutabledata. Ваш код потребует несколько экземпляров, один для каждого активного соединения.

Или, конечно, вы можете иметь отдельный объект делегата (отдельный экземпляр) для каждого соединения. Это может быть проще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top