NSURLConnection - didFailWithError не вызывается - PullRequest
0 голосов
/ 05 августа 2011

Я использую NSURLConnection для загрузки данных с сервера. Итак, в моем приложении Iphone была кнопка, при нажатии на эту кнопку и подключении к интернету данные будут загружены успешно. Но позже, когда я отключил интернет-соединение на Mac, а затем снова нажал на эту кнопку, метод didFailWithError не вызывался, но были вызваны другие методы, такие как didReceiveResponse, connectionDidFinishLoading.

Кто-нибудь сталкивался с такой проблемой раньше? Или кто-нибудь знает причину этой проблемы?

Очень благодарен за любые комментарии, предложения и решения. Спасибо.

Ответы [ 2 ]

1 голос
/ 20 января 2012

Перед изменением любой строки в вашем коде, попробуйте тот же тест с симулятором 4.3, а затем 5.0.

Я пробовал что-то похожее (запрос на URL и соединение закрыто без ответа), и с использованием 4.3, didFailWithError называется.В 5.0 я получаю didReceiveResponse с кодом состояния 200 OK (!) и затем connectionDidFinishLoading.Тот же код, тот же запрос, разные версии ОС ...

0 голосов
/ 05 августа 2011

Странное поведение, особенно потому что вы выключили интернет, но делегат все еще вызывал ** connectionDidFinishLoading **, как это возможно?Также вы написали, что " когда нажимаете на эту кнопку и интернет-соединение подключено " ваш код все еще инициировал соединение без интернета?

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

* Системы nix по умолчанию имеют тайм-аут для подключения к сокетам BSD, который может не сказать вам ничего о том, какое соединение пропущено.Но я думаю, что Mac OS / iOS настроены для такого рода случаев.

...