在AFHTTPRequestOperationManager和AFHTTPSessionManager之间进行选择时的建议

时间:2013-10-11 08:36:12

标签: objective-c afnetworking-2 afhttpclient afhttprequestoperation

由于AFNetworking 2.0 AFHTTPClient已经消失,有利于两位经理:AFHTTPRequestOperationManagerAFHTTPSessionManager。迁移指南几乎没有说明每种情况下最好使用的情况。据我所知,与RESTful JSON API的基本交互可以分别使用它们来实现。

使用RequestOperationManagerSessionManager的最合适的案例是什么?

2 个答案:

答案 0 :(得分:18)

它们基本相同,只是AFHTTPSessionManager在内部使用iOS 7 / OS X 10.9 NSURLSession,因此它不能在iOS 6中使用。AFHTTPRequestOperationManager直到NSURLRequest已被弃用。

Check here for more info

  

所以回顾一下:为了支持新的NSURLSession API以及旧的但尚未弃用且仍然有用的NSURLConnection,AFNetworking 2.0的核心组件在请求操作和会话任务之间分开。 AFHTTPRequestOperationManager和AFHTTPSessionManager提供类似的功能,几乎可互换的接口可以在需要时轻松换出(例如在iOS 6和7之间移植)。

请注意,两者之间存在一些差异。 AFHTTPSessionManager返回NSURLSessionDataTask对象,这些对象不是NSOperations。这意味着将它们排队并在请求之间建立依赖关系变得更加困难。

答案 1 :(得分:1)

另见AFHTTPRequestOperationManager

的子类注释
  

鼓励使用广泛处理Web服务的iOS 7或Mac OS X 10.9或更高版本的开发人员继承AFHTTPSessionManager,提供一种返回共享单例对象的类方法,在该对象上可以跨应用程序共享身份验证和其他配置。

对于面向iOS 6或Mac OS X 10.8或更早版本的开发人员,AFHTTPRequestOperationManager可能会用于类似的效果。