Рекомендации при выборе между AFHTTPRequestOperationManager и AFHTTPSessionManager

Так как AFNetworking 2.0 AFHTTPClient исчез в пользу двух менеджеров: AFHTTPRequestOperationManager а также AFHTTPSessionManager, Руководство по миграции почти ничего не говорит о случаях, когда каждый из них предпочтительнее использовать. Насколько я понимаю, основное взаимодействие с RESTful JSON API могут быть реализованы с использованием каждого из них в отдельности.

Каковы наиболее подходящие случаи для использования RequestOperationManager или же SessionManager?

2 ответа

Решение

Они в основном эквивалентны, за исключением того, что AFHTTPSessionManager внутренне использует iOS 7 / OS X 10.9 NSURLSession, поэтому он не может быть использован в iOS 6. AFHTTPRequestOperationManager там до NSURLRequest становится устаревшим.

Проверьте здесь для получения дополнительной информации:

Напомним, что для поддержки новых API-интерфейсов NSURLSession, а также старого, но не устаревшего и все еще полезного NSURLConnection основные компоненты AFNetworking 2.0 разделены между операцией запроса и задачами сеанса. AFHTTPRequestOperationManager и AFHTTPSessionManager предоставляют схожую функциональность с почти взаимозаменяемыми интерфейсами, которые можно довольно легко заменить в случае необходимости (например, портирование между iOS 6 и 7).

Обратите внимание, что есть несколько различий между ними. AFHTTPSessionManager возвращает объекты NSURLSessionDataTask, которые не являются операциями NSOperation. Это означает, что сложнее поставить их в очередь и установить зависимости между запросами.

Также см. примечания по подклассам для AFHTTPRequestOperationManager

Разработчикам, ориентированным на iOS 7 или Mac OS X 10.9 или более поздней версии, которые имеют дело с веб-службой, рекомендуется создавать подкласс AFHTTPSessionManager, предоставляя метод класса, который возвращает общий одноэлементный объект, для которого аутентификация и другие конфигурации могут совместно использоваться приложением.

Для разработчиков, ориентированных на iOS 6 или Mac OS X 10.8 или более раннюю версию, AFHTTPRequestOperationManager может использоваться для аналогичного эффекта.

Другие вопросы по тегам