Я использую подклассы Ben Copsey's ASIHTTPRequest
очень сильно для клиента веб-сервиса, которого я надеюсь закончить в ближайшие пару недель. Это отличный проект, и его работа спасла мне много времени и сил.
У меня есть ASINetworkQueue
, установленный в делете приложения. Очередь отправляется сообщение -go
, чтобы оно было готово для получения запросов. Я добавляю свои подклассы в эту очередь. Каждый запрос обрабатывается и выдает свои уведомления, и мой контроллер представления обрабатывает данные ответа соответствующим образом.
То, что я сделал это подкласс ASIHTTPRequest
и:
- Настройка
-init
метода (или -initWithParams:
метода, в зависимости от запроса)
- Override
-requestFailed:
и -requestCompleted:
для обработки сообщений об ошибках HTTP, возвращающиеся из веб-сервис
- Зарегистрированные пользователи, которые могут видеть сообщения
NSNotification
, могут исходить из обработки ошибок в методе -requestCompleted:
Поскольку контроллеры представления нажимаются и выталкиваются из стека навигации, я добавляю и удаляю различные регистрации. Некоторым контроллерам представлений требуется только прослушивание определенных типов запросов подкласса.
Прослушивание NSNotification
позволяет мне выпускать диалоги UIAlertView
, чтобы пользователь знал, что что-то пошло не так, или обрабатывать данные ответа на запрос (например, подавать результаты в хранилище основных данных), когда запрос дает успешную ошибку HTTP.
Является ли запрос успешным или неудачным, я помню -release
запрос, когда я закончил с ним.
Вам нужно иметь дело с токеном доступа на стороне сервера? В моем случае я должен отправить 3-4 запроса, и я не уверен, что они преуспеют или потерпят неудачу. Если они не сработают, мне придется попросить новый токен доступа, а затем повторить неудавшиеся запросы. Также я один провалился, нет причин запускать остальных, пока я не получу новый токен. И когда это доступно, просто запустите его в очереди ожидания. – Zsolt