Не вызывается connectionDidFinishLoading: и didFailWithError: - PullRequest
3 голосов
/ 19 февраля 2011

Звоню

connectionInProgress = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

, когда я отключаюсь и снова подключаю интернет к симулятору.Один вызов initWithRequest: не вызывает ни connectionDidFinishLoading:, ни didFailWithError: не вызывается.

Я вызываю в цикле и получаю следующие результаты (когда отключено).

DidFailWithError: Ошибка при получении: подключение к Интернету отключено.

Следующий вызов через несколько секунд (после восстановления подключения к Интернету).

DidFailWithError: Ошибка при получении:Не удалось найти сервер с указанным именем хоста.

И в следующий раз, когда я вызываю, ни один из двух обратных вызовов не вызывается.

1 Ответ

1 голос
/ 16 апреля 2011

Я только что столкнулся с той же проблемой с симулятором iPhone.

После 6 часов отладки, поиска в Google и поиска в стеке я нашел решение: В симуляторе iPhone есть ошибка !(Или, по крайней мере, это то, что доказали мои тесты).

Когда вы отсоединяете кабель Wi-Fi / Интернет от вашего Mac, пытаясь симулировать исчезновение сетевого подключения, это не будет симулироваться в симуляторе iPhone!(На самом деле, если вы заметили, что значок подключения Wi-Fi на симуляторе не исчезает)

Я попытался развернуть приложение (которое также создает NSURLConnection) на моем iPhone 4, и если я положил его в самолетрежим, тогда didFailWithError вызывается!Хотя на симуляторе этого не происходит!

Обратите внимание, что я использую Xcode 4.0 и разрабатываю для iOS 4.3

Поэтому ответ таков: попробуйте развернуть свое приложение на реальномiOS-устройство, и оно, вероятно, будет работать!

...