AFNetworking中的registerHTTPOperationClass实际上做了什么?

Seb*_*ldt 6 http objective-c ios afnetworking

我试图了解AFNetworking框架是如何工作的.但是我不明白的细节很少.

我编写了一个子类,AFHTTPclient使其成为一个单例类,并添加了一个执行以下操作的初始化程序:

- (id)initWithBaseURL:(NSURL *)url {
    self = [super initWithBaseURL:url];
    if (self) {
        [self registerHTTPOperationClass:[AFJSONRequestOperation class]];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

我从互联网上找到的教程中得到了这段代码,但是我不明白为什么我要注册我的课程,JSONRequestOperation如果我想要获得JSON数据?如果我这样做,究竟在幕后发生了什么?这registerHTTPOperation堂课究竟做了什么?

PS:有没有AFNetworking关于互联网上某些地方的例子和深入解释的好文档?

rck*_*nes 11

在使用getPath和postPath方法时,registerHTTPOperationClass:on AFHTTPclient将使用类集来处理您的请求.

在您给出的示例中,HTTPRequestOperation设置为AFJSONRequestOperation,这意味着对服务器的所有请求都将使用的实例完成AFJSONRequestOperation.该AFJSONRequestOperation会尝试从与服务器解析的结果NSJSONSerialization类.

如果服务器使用XML响应,则应将HTTPRequestOperation设置AFXMLRequestOperation为例如.

  • @hashier它们是不同的东西,`registerHTTPOperationClass:`设置用于解析响应的类.在您的情况下,服务器需要标头告诉它在`JSON`中返回响应. (3认同)