iOS AFN 3.0版本前后區(qū)別 02

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

一.前言

AFNetworking是一款在OS X和iOS下都令人喜愛的網(wǎng)絡(luò)庫衙吩。為了迎合iOS新版本的升級(jí), AFNetworking在3.0版本中刪除了基于 NSURLConnection API的所有支持。如果你的項(xiàng)目以前使用過這些API溪窒,建議您立即升級(jí)到基于 NSURLSession 的API的AFNetworking的版本坤塞。本指南將引導(dǎo)您完成這個(gè)過程。

本指南是為了引導(dǎo)使用AFNetworking 2.x升級(jí)到最新的版本API澈蚌,以達(dá)到過渡的目的摹芙,并且解釋了新增和更改的設(shè)計(jì)結(jié)構(gòu)。

新設(shè)備要求: iOS 7, Mac OS X 10.9, watchOS 2, tvOS 9, & Xcode 7

AFNetworking 3.0正式支持的iOS 7宛瞄, Mac OS X的10.9浮禾, watchOS 2 , tvOS 9 和Xcode 7份汗。如果你想使用AFNetworking在針對(duì)較舊版本的SDK項(xiàng)目盈电,請(qǐng)檢查README的兼容性信息。

NSURLConnection的API已廢棄

AFNetworking 1.0建立在NSURLConnection的基礎(chǔ)API之上 杯活,AFNetworking 2.0開始使用NSURLConnection的基礎(chǔ)API 匆帚,以及較新基于NSURLSession的API的選項(xiàng)。 AFNetworking 3.0現(xiàn)已完全基于NSURLSession的API旁钧,這降低了維護(hù)的負(fù)擔(dān)吸重,同時(shí)支持蘋果增強(qiáng)關(guān)于NSURLSession提供的任何額外功能互拾。由于Xcode 7中,NSURLConnection的API已經(jīng)正式被蘋果棄用嚎幸。雖然該API將繼續(xù)運(yùn)行颜矿,但將沒有新功能將被添加,并且蘋果已經(jīng)通知所有基于網(wǎng)絡(luò)的功能嫉晶,以充分使NSURLSession向前發(fā)展骑疆。

AFNetworking 2.X將繼續(xù)獲得關(guān)鍵的隱患和安全補(bǔ)丁,但沒有新的功能將被添加车遂。Alamofire(Swift下的網(wǎng)絡(luò)請(qǐng)求)軟件基金會(huì)建議封断,所有的項(xiàng)目遷移到基于NSURLSession的API。

棄用的類

下面的類已從AFNetworking 3.0中廢棄:

AFURLConnectionOperation

AFHTTPRequestOperation

AFHTTPRequestOperationManager

修改的類

下面的類包含基于NSURLConnection的API的內(nèi)部實(shí)現(xiàn)舶担。他們已經(jīng)被使用NSURLSession重構(gòu):

UIImageView+AFNetworking

UIWebView+AFNetworking

UIButton+AFNetworking

遷移

AFHTTPRequestOperationManager 核心代碼

如果你以前使用 AFHTTPRequestOperationManager 蹄溉, 你將需要遷移去使用 AFHTTPSessionManager毒姨。 以下的類在兩者過渡間并沒有變化:

securityPolicy

requestSerializer

responseSerializer

接下來舉一個(gè)關(guān)于AFHTTPSessionManager的簡(jiǎn)單例子。注意HTTP網(wǎng)絡(luò)請(qǐng)求返回的不再是AFHTTPRequestOperation, 修改成為了NSURLSessionTask落竹,并且成功和失敗的Block塊中的參數(shù)也變更為了NSURLSessionTask闸氮,而不再是AFHTTPRequestOperation剪况。

AFNetworking 2.x

詳情內(nèi)容鏈接: http://write.blog.csdn.net/postedit/75331456

6AFHTTPRequestOperationManager?*manager?=?[AFHTTPRequestOperationManager?manager];

[manager?GET:@"請(qǐng)求的url"parameters:nil?success:^(AFHTTPRequestOperation?*operation,?id?responseObject)?{

NSLog(@"成功");

}?failure:^(AFHTTPRequestOperation?*operation,?NSError*error)?{

NSLog(@"失敗");

}];

AFNetworking 3.0

6AFHTTPSessionManager?*session?=?[AFHTTPSessionManager?manager];

[session?GET:@"請(qǐng)求的url"parameters:nil?success:^(NSURLSessionDataTask?*task,?id?responseObject)?{

NSLog(@"成功");

}?failure:^(NSURLSessionDataTask?*task,?NSError?*error)?{

NSLog(@"失敗");

}];

AFHTTPRequestOperation 核心代碼

與NSURLConnection對(duì)象不同,每個(gè)共享應(yīng)用范圍的設(shè)置如會(huì)話管理蒲跨、緩存策略译断、Cookie存儲(chǔ)以及URL協(xié)議等,這些NSURLSession對(duì)象都可以單獨(dú)進(jìn)行配置或悲。使用特定的配置來初始化會(huì)話孙咪,它可以發(fā)送任務(wù)來獲取數(shù)據(jù),并上傳或下載文件巡语。

在AFNetworking 2.0中翎蹈,使用AFHTTPRequestOperation,有可能創(chuàng)建一個(gè)沒有額外開銷的獨(dú)立的網(wǎng)絡(luò)請(qǐng)求來獲取數(shù)據(jù)男公。NSURLSession則需要更多的開銷荤堪,為了獲得所要請(qǐng)求的數(shù)據(jù)。

接下來枢赔,將要通過AFHTTPSessionManager創(chuàng)建一個(gè)單例澄阳,并創(chuàng)建一個(gè)任務(wù)和啟動(dòng)它。

AFNetworking 2.x

10NSURL?*URL?=?[NSURL?URLWithString:@""];

NSURLRequest?*request?=?[NSURLRequest?requestWithURL:URL];

AFHTTPRequestOperation?*op?=?[[AFHTTPRequestOperation?alloc]?initWithRequest:request];

op.responseSerializer?=?[AFJSONResponseSerializer?serializer];

[op?setCompletionBlockWithSuccess:^(AFHTTPRequestOperation?*operation,?id?responseObject)?{

NSLog(@"JSON:?%@",?responseObject);

}?failure:^(AFHTTPRequestOperation?*operation,?NSError?*error)?{

NSLog(@"Error:?%@",?error);

}];

[[NSOperationQueue?mainQueue]?addOperation:op];

AFNetworking 3.0


7NSURL?*URL?=?[NSURL?URLWithString:@""];

AFHTTPSessionManager?*manager?=?[AFHTTPSessionManager?manager];

[manager?GET:URL.absoluteString?parameters:nil?success:^(NSURLSessionTask?*task,?id?responseObject)?{

NSLog(@"JSON:?%@",?responseObject);

}?failure:^(NSURLSessionTask?*operation,?NSError?*error)?{

NSLog(@"Error:?%@",?error);

}];

UIKit的遷移

圖片下載已經(jīng)被重構(gòu)踏拜,以遵循AlamofireImage架構(gòu)與新的AFImageDownloader類碎赢。這個(gè)類的圖片下載職責(zé)的代理人是UIButton與UIImageView的類目,并且提供了一些方法执隧,在必要時(shí)可以自定義揩抡。類別中户侥,下載遠(yuǎn)程圖片的實(shí)際方法沒有改變。

UIWebView的類目被重構(gòu)為使用AFHTTPSessionManager作為其網(wǎng)絡(luò)請(qǐng)求峦嗤。

UIAlertView的類目被廢棄

從AFNetworking 3.0后UIAlertView的類目因過時(shí)而被廢棄蕊唐。并沒有提供UIAlertController類目的計(jì)劃,因?yàn)檫@是應(yīng)用程序應(yīng)處理的邏輯烁设,而不是這個(gè)庫替梨。

謝謝!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市装黑,隨后出現(xiàn)的幾起案子副瀑,更是在濱河造成了極大的恐慌,老刑警劉巖恋谭,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糠睡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡疚颊,警方通過查閱死者的電腦和手機(jī)狈孔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來材义,“玉大人均抽,你說我怎么就攤上這事∑涞啵” “怎么了油挥?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)款熬。 經(jīng)常有香客問我深寥,道長(zhǎng),這世上最難降的妖魔是什么华烟? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任翩迈,我火速辦了婚禮,結(jié)果婚禮上盔夜,老公的妹妹穿的比我還像新娘负饲。我一直安慰自己,他們只是感情好喂链,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布返十。 她就那樣靜靜地躺著,像睡著了一般椭微。 火紅的嫁衣襯著肌膚如雪洞坑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天蝇率,我揣著相機(jī)與錄音迟杂,去河邊找鬼刽沾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛排拷,可吹牛的內(nèi)容都是我干的侧漓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼监氢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼布蔗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浪腐,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤纵揍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后议街,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泽谨,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年特漩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隔盛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拾稳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腊脱,到底是詐尸還是另有隱情访得,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布陕凹,位于F島的核電站悍抑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杜耙。R本人自食惡果不足惜搜骡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佑女。 院中可真熱鬧记靡,春花似錦、人聲如沸团驱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嚎花。三九已至寸痢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間紊选,已是汗流浹背啼止。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工道逗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人献烦。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓滓窍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親仿荆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贰您,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)自:暮落晨曦 AFNetworking 3.0 AFNetworking是一款在OS X和iOS下都令人喜愛...
    胡同里敲代碼閱讀 668評(píng)論 0 6
  • 在蘋果徹底棄用NSURLConnection之后自己總結(jié)的一個(gè)網(wǎng)上的內(nèi)容,加上自己寫的小Demo拢操,很多都是借鑒網(wǎng)絡(luò)...
    付寒宇閱讀 4,280評(píng)論 2 13
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開發(fā)锦亦,例如說新浪微博、微信等令境,這些應(yīng)用本身可...
    lichengjin閱讀 3,661評(píng)論 2 7
  • 小小感言本來是想寫博客來著杠园,朋友說簡(jiǎn)書的排版更好些,于是就來試試舔庶∨滓希總想著把自己開發(fā)中遇到的技術(shù)點(diǎn)、問題還有大大小小...
    呆呆滴木木菇?jīng)?/span>閱讀 990評(píng)論 1 6
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,383評(píng)論 0 6