#objective-c #ios #asihttprequest #user-experience #reachability
#objective-c #iOS #asihttprequest #пользовательский интерфейс #достижимость
Вопрос:
Я пытался реализовать ASIHTTPRequest
загрузку файлов с сервера. У меня есть опция, при которой пользователь может добавлять загрузки в очередь и ASINetworkQueue
обрабатывать загрузки файлов один за другим.
Я пытаюсь реализовать функцию, при которой, если пользователь теряет свое сетевое соединение, я ASINetworkQueue
должен постоянно опрашивать доступность сети. Как только подключение снова станет доступным, приложение начнет загрузку файлов с того места, на котором оно остановилось.
Я не прошу код, но я был бы признателен, если кто-нибудь сможет помочь мне с множеством подсказок.
Чтобы заставить мое приложение загружать файл с того места, где он остановился, я использую ASIHTTPRequest
метод
[request setAllowResumeForFileDownloads:YES];
Ответ №1:
Вы можете использовать API-интерфейсы доступности, которые Apple предоставляет, проиллюстрированные в их примере кода достижимости. Смотрите ссылку.
Это позволяет вам получать обратный вызов при изменении достижимости, вы также можете опрашивать достижимость, когда это необходимо, например, в applicationDidBecomeActive, когда, если бы достижимость изменилась, когда вы были в фоновом режиме, вы бы не были проинформированы.
Комментарии:
1. Я искал именно то , о чем просит ОП .
ASIHTTPREQUEST
также ссылается на достижимость . Должны ли мы вызывать достижимость напрямую? илиASIHTTPREQUEST
предоставляет способ сделать это, предоставив над ним некоторый слой.2. @JavaKaBaby, да, ASIHTTPRequest использует достижимость, и, насколько я могу судить, вы можете положиться на него для выполнения безопасных запросов. Мой стиль кодирования — «помешанный на контроле», поэтому мне нравится контролировать как можно больше рабочего процесса. Например, если бы я писал это приложение, при запуске приложения я бы проверил, есть ли какие-либо незавершенные загрузки, а затем, если бы они были, я бы проверил доступность для действительного соединения, и если бы только тогда я продолжил указанные загрузки.