беспроводное соединение iphone, сбой подключения после повторного включения / выключения беспроводной связи - PullRequest
1 голос
/ 03 октября 2010

У меня довольно простое приложение для iphone, я делаю несколько веб-звонков с:

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

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

Есть ли что-то, чего мне не хватает для "очистки" состояния сети в моем приложении, если оно выходит из строя, когда приложение находится в фоновом режиме?

Ответы [ 3 ]

1 голос
/ 03 октября 2010

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

Во-первых, если вы не работаете в фоновом потоке, избегайте синхронных запросов. Apple, Руководство по программированию системы загрузки URL содержит пример кода для асинхронных запросов.Документация для NSURLConnection также содержит ссылки на множество примеров кода в разделе «Связанный пример кода».

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

1 голос
/ 03 октября 2010

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

https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

1 голос
/ 03 октября 2010

Попробуйте вместо этого использовать асинхронные сетевые запросы.Возможно, возникла какая-то проблема с приостановкой и возобновлением заблокированного потока синхронной сети во время некоторой ошибки.

...