2012-12-17 38 views
6

我想了解AFNetworking框架是如何工作的。但有一點細節我不明白。我寫了一個AFHTTPclient的子類。使其成爲單獨的類,並增加了一個初始化程序,做以下操作:AFNetworking中的registerHTTPOperationClass究竟做了什麼?

- (id)initWithBaseURL:(NSURL *)url { 
    self = [super initWithBaseURL:url]; 
    if (self) { 
     //custom settings 
     [self registerHTTPOperationClass:[AFJSONRequestOperation class]]; // ??? 
    } 
    return self; 
} 

我從一個教程我在網上發現這個代碼,但我不明白爲什麼我如果我登記我的類JSONRequestOperation想要獲取JSON數據嗎?如果我這樣做的話,底下究竟發生了什麼? registerHTTPOperation課程究竟做了什麼? PS:在互聯網上的任何地方是否有一個帶有示例和深入解釋AFnetworking的良好文檔?

+2

所有的文件是在這裏:http://afnetworking.github.com/AFNetworking/ – rckoenes

回答

11

AFHTTPclient上的registerHTTPOperationClass:將使用類集來處理您在使用getPath和postPath方法時的請求。

在給出的例子中,HTTPRequestOperation設置爲AFJSONRequestOperation,這意味着所有對服務器的請求都將使用AFJSONRequestOperation的實例完成。 AFJSONRequestOperation將嘗試使用NSJSONSerialization類從服務器解析結果。

如果服務器使用XML響應,你應該在HTTPRequestOperation設置爲AFXMLRequestOperation例如。

+0

真棒。謝謝。這是我正在尋找的解釋。 –

+0

不錯的答案。 + 1 –

+1

對我來說,只有當我設置'[self setDefaultHeader:@「Accept」value:@「application/json」];'也是如此。爲什麼我必須設置defaultHeader和寄存器AFJSONRequestOperation? – hashier