Я знаю, что этот вопрос будет обманом многих других, однако я не чувствую, что простой случай хорошо объяснен здесь. Исходя из Android и BlackBerry, отправка запросов через HTTPUrlConnection
мгновенно завершается сбоем, если нет доступного соединения. Это похоже на совершенно нормальное поведение, и я был удивлен, обнаружив, что NSURLConnection
в iOS не эмулирует его.
Я понимаю, что Apple (и другие, кто ее расширил) предоставляют класс Reachability
для определения состояния сети. Я был счастлив сначала увидеть это и полностью ожидал увидеть что-то вроде bool isNetworkAvailable()
, но вместо этого к своему удивлению я обнаружил сложную систему, требующую регистрации уведомлений и обратных вызовов, и кучу, казалось бы, ненужных деталей. Должен быть лучший способ.
Мое приложение уже корректно обрабатывает сбои подключения, включая отсутствие подключения. Пользователь уведомляется о сбое, и приложение перемещается.
Таким образом, мои требования просты: одиночная синхронная функция, которую я могу вызвать перед всеми HTTP-запросами, чтобы определить, стоит ли мне беспокоиться об отправке запроса или нет. В идеале он не требует настройки и просто возвращает логическое значение.
Это действительно невозможно на iOS?