Рекомендации при выборе между 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 может использоваться для аналогичного эффекта.