Я очень активно использую подклассы ASIHTTPRequest
Бена Копси для клиента веб-сервиса, который я надеюсь завершить в ближайшие пару недель. Это отличный проект, и его работа сэкономила мне много времени и усилий.
У меня установлен ASINetworkQueue
в делегате приложения. В очередь отправляется сообщение -go
, чтобы она была готова к приему запросов. Я добавляю свои подклассовые запросы в эту очередь. Каждый запрос обрабатывается и выдает свои уведомления, и мой контроллер представления соответственно обрабатывает данные ответа.
То, что я сделал, это подкласс ASIHTTPRequest
и:
- Настройка метода
-init
(или метода -initWithParams:
, в зависимости от запроса)
- Переопределить
-requestFailed:
и -requestCompleted:
для обработки сообщений об ошибках HTTP, возвращаемых из веб-службы
- Мои контроллеры вида регистрируются для наблюдения
NSNotification
уведомлений, которые приходят от обработки ошибок в методе -requestCompleted:
Когда контроллеры представления включаются и удаляются из стека навигации, я добавляю и удаляю различные регистрации. Некоторым контроллерам представления требуется прослушивать только определенные типы подклассов запросов.
Прослушивание NSNotification
позволяет мне выдавать UIAlertView
диалогов, чтобы пользователь знал, что что-то пошло не так, или обрабатывать данные ответа на запрос (например, подачу результатов в хранилище Core Data), когда запрос приводит к успешному Ошибка HTTP.
Независимо от того, был ли запрос успешным или нет, я помню -release
запрос, когда закончил с ним.