Вы не должны использовать initWithContentsOfURL:
, это блокирующий API, и приложение будет зависать во время выполнения, если только вы не создадите новый поток вручную, чтобы запустить его и правильно управлять им.
Вы должны использовать NSURLConnection
для выполнения веб-запросов.
Используя NSURLConnection
, вы получите неблокирующую, асинхронную функциональность, а также сможете обрабатывать такие вещи, как аутентификация, коды ответов, тайм-ауты иОтмена запроса.
Просмотрите документацию для NSURLConnection
и NSURLRequest
(а также NSMutableURLRequest
).
Методы делегата NSURLConnection
- это способ обработки кодов ответов., проверка подлинности и т. д.
Что касается исходного вопроса, вы можете проверить доступность веб-службы несколькими способами:
- . Используйте пример Apple Reachability для проверки подключения к Интернету.и / или хост доступен из вашей текущей сети.
- Используйте
NSURLConnection
для обработки кодов ответов с сервера.200 в порядке, 404 страница не найдена, требуется 401 авторизация, 500 внутренняя ошибка сервера и т. Д. И т. Д. И т. П. - Вы можете выполнять различные действия в зависимости от кода.