2015-06-11 34 views
0

我的任務是用AFNetworking代碼替換所有NSURLConnection代碼。我並不十分熟悉,無論是一件事,讓我爲難的是如何替換此行:用AFNetworking替換NSURLConnection

self.urlConnection = [[NSURLConnection alloc] initWithRequest:self.urlRequest delegate:self startImmediately:true]; 

我已經試過這樣:

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:self.urlRequest]; 

AFHTTPRequestOperation沒有委託財產。在AFNetworking中是否有相當於NSURLConnectionDelegate方法的代理?

回答

1

AFNetworking傾向於基於塊的方法,因此您可以使用setCompletionBlockWithSuccess:failure:來提供塊以處理成功接收的數據或失敗錯誤。

1

AFNetworking將不會使用您的舊NSURLConnectionDataDelegateNSURLConnectionDelegate方法。它用一些更簡單的基於塊的接口替代了許多詳細的基於委託的代碼。你可能會拿出很多構建你的對象的代碼,以及你擁有的大部分代理方法。 AFNetworking的整個想法是讓你擺脫這類代碼的血腥細節。

話雖如此,你至少不應該嘗試用AFNetworking代替NSURLConnection代碼,而不需要對AFNetworking有一點熟悉。我建議通過在他們的README頁面上找到的AFNetworking例子,也許還會經歷幾個AFNetworking教程(只是谷歌它,你應該找到很多)。

我會建議通過現有NSURLConnection代碼去,確保你明白它試圖在高位做(如GET VS POST,JSON VS X WWW的形式,進行了urlencoded請求等),然後採取AFNetworking取代它的裂縫。如果您進行一些調查並親自嘗試,我們很樂意爲您提供幫助。而且,一旦你看到AFNetworking真的很容易,很可能你甚至不需要我們的幫助。但是你需要做一些研究並首先給它一個啓發。

相關問題