Как правильно отменить NSURLConncetion - PullRequest
0 голосов
/ 05 ноября 2011

Это может показаться новичком, однако я новичок в разработке для iOS.

Я объявил NSURLConnection* mImageUploadConnection в качестве члена экземпляра. И запустил следующее, чтобы создать его.

mImageUploadConnection = [[NSURLConnection alloc] initWithRequest:someRequest delegate:self startImmediately:YES];

Количество сохраняемых счетчиков равно 2 после распределения, почему? (Это может быть внутреннее содержимое Apple, верно? Мне все еще нужно разорвать соединение только один раз?).

Я освобождаю соединение в

 - didFailWithError
 - connectionDidFinishLoading

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

if (mUploadeImagConnection != nil) {
    [mUploadeImageConnection cancel];  
    [mUploadeImagConnection release];
}

Соединение корректно отменяется, если оно еще не завершено или не завершено. Но последний фрагмент кода терпит неудачу (плохой доступ), когда соединение успешно завершено, то есть оно было освобождено один раз.

  • Счетчик сохранения mUploadeImagConnection равен 1 при отмене после соединение завершено успешно, почему это так ???
  • Как проверить последний фрагмент кода, если статус подключения был успешно, и не отправить сообщение об отмене?

1 Ответ

0 голосов
/ 05 ноября 2011

Установите ваш ивар на nil после того, как вы его отпустите.

...