2012-06-27 4 views
3

Мое приложение вызывает веб-службу для извлечения некоторых данных, и я хочу сделать как можно больше опыта. Я понял, что с помощью NSURLConnection очень сложно дать своевременную обратную связь.Есть ли надежная альтернатива NSURLConnection?

Иногда мой iPhone пытается загрузить данные в течение минуты или двух, и я не вижу способа выяснить, что так долго, или почему загрузка так хлопота. Затем через несколько минут я иногда получаю код ошибки.

Я хочу показать, что именно происходит. Сообщения типа:

  1. "Создание подключения к Интернету"
  2. "Попытка подключения к серверу"
  3. "Connected ..."
  4. "Загрузка данных ..."
  5. «Загрузка завершена! "

И когда есть проблемы, такие как сервер, недоступный или DNS не может быть разрешен, было бы неплохо просто повторить попытку несколько раз, а не просто выйти и выбросить ошибку.

Есть ли замены для NSURLConnection, которые обрабатывают эти вещи более грациозно и дают лучшую информацию вовремя о том, что происходит?

+0

Вы просмотрели [NSURLConnectionDelegate] (https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html) правильно? Это дает вам много этих обратных вызовов, но может считаться сложным. –

+0

Вы можете сделать 3, 4, 5 с протоколом NSURLConnectionDelegate. – nhahtdh

ответ

0

Something, который может помочь вам достичь того, чего вы хотите. Поскольку ASIHTTPRequest больше не поддерживается, MKNetworkKit будет вашим лучшим выбором. Чтобы проверить возможность подключения, вы всегда можете использовать Reachability.

+0

MKNetworkKit использует NSURLConnection под FYI – jjxtra

+0

И? У Fiat panda также есть мотор ... Но я бы предпочел водить BMW ... – Peres

1

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

Но, а как насчет MKNetworkKit? Я использую его, и это действительно облегчает работу с этими проблемами.

+0

Спасибо! Предоставляет ли он своевременную обратную связь о том, что происходит? Делегировать вызовы или уведомления? –

4

Я был большим поклонником библиотеки AFNetworking. Очень прост в использовании и обертывает все ваши сетевые звонки в блоках, с которыми очень легко работать.

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

+0

Спасибо! Предоставляет ли он своевременную обратную связь о том, что происходит? Делегировать вызовы или уведомления? –

+0

Он не использует методы делегата, он использует блоки. Таким образом, вы начинаете свое соединение, и у вас есть блок успеха и блок сбоев. Метод будет продолжен, но когда соединение будет выполнено, он будет выполнять любую логику внутри блоков успеха/отказа. Вы всегда можете создать свой собственный метод делегата для вызова внутри этих блоков. Это то, что я делаю. Затем вы получаете полный контроль над тем, кто получает уведомление. –

Смежные вопросы