国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

iOS開發ASIHTTPRequest進度追蹤

移動開發 iOS
本文為大家介紹了發ASIHTTPRequest進度追蹤的內容,其中包括追蹤單個request的下載進度,追蹤一系列request的下載進度,追蹤單個request的上傳進度,追蹤一系列request的上傳進度,精確進度條vs簡單進度條,自定義進度追蹤等等內容。

本文為大家介紹了發ASIHTTPRequest進度追蹤的內容,其中包括追蹤單個request的下載進度,追蹤一系列request的下載進度,追蹤單個request的上傳進度,追蹤一系列request的上傳進度,精確進度條vs簡單進度條,自定義進度追蹤等等內容。

每個ASIHTTPRequest有兩個delegate用來追蹤進度:

downloadProgressDelegate (下載) 和 uploadProgressDelegate (上載)。

進度delegate可以是NSProgressIndicators (Mac OS X) 或者 UIProgressViews (iPhone).ASIHTTPRequest會自適應這兩個class的行為。你也可以使用自定義class作為進度delegate,只要它響應setProgress:函數。

  • 如果你執行單個request,那么你需要為該request設定upload/download進度delegate
  • 如果你在進行多個請求,并且你想要追蹤整個隊列中的進度,你必須使用ASINetworkQueue并設置隊列的進度delegate
  • 如果上述兩者你想同時擁有,恭喜你,0.97版以后的ASIHTTPRequest,這個可以有 ^ ^

IMPORTANT:如果你向一個要求身份驗證的網站上傳數據,那么每次授權失敗,上傳進度條就會被重置為上一次的進度值。因此,當與需要授權的web服務器交互時,建議僅當useSessionPersistence為YES時才使用上傳進度條,并且確保你在追蹤大量數據的上傳進度之前,先使用另外的request來進行授權。 

追蹤小于128KB的數據上傳進度目前無法做到,而對于大于128kb的數據,進度delegate不會收到***個128kb數據塊的進度信息。這是因為CFNetwork庫API的限制。我們曾向apple提交過bug報告(bug id 6596016),希望apple能修改CFNetwork庫以便實現上述功能。

2009-6-21:Apple的哥們兒們真棒!iPhone 3.0 SDK里,buffer大小已經被減小到32KB了,我們的上傳進度條可以更精確了。

追蹤單個request的下載進度

這個例子中, myProgressIndicator是個 NSProgressIndicator.

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request setDownloadProgressDelegate:myProgressIndicator]; 
  3. [request startSynchronous]; 
  4. NSLog(@"Max: %f, Value: %f", [myProgressIndicator maxValue],[myProgressIndicator doubleValue]); 

追蹤一系列request的下載進度

在這個例子中, myProgressIndicator 是個 UIProgressView, myQueue是個 ASINetworkQueue.

  1. - (void)fetchThisURLFiveTimes:(NSURL *)url 
  2.    [myQueue cancelAllOperations]; 
  3.    [myQueue setDownloadProgressDelegate:myProgressIndicator]; 
  4.    [myQueue setDelegate:self]; 
  5.    [myQueue setRequestDidFinishSelector:@selector(queueComplete:)]; 
  6.    int i; 
  7.    for (i=0; i<5; i++) { 
  8.       ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  9.       [myQueue addOperation:request]; 
  10.    } 
  11.    [myQueue go]; 
  12.   
  13. - (void)queueComplete:(ASINetworkQueue *)queue 
  14.    NSLog(@"Value: %f", [myProgressIndicator progress]); 

這個例子中,我們已經為ASINetworkQueues調用過[myQueue go]了。

追蹤單個request的上傳進度

在這個例子中, myProgressIndicator 是個 UIProgressView。

  1. ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
  2. [request setPostValue:@"Ben" forKey:@"first_name"]; 
  3. [request setPostValue:@"Copsey" forKey:@"last_name"]; 
  4. [request setUploadProgressDelegate:myProgressIndicator]; 
  5. [request startSynchronous]; 
  6. NSLog(@"Value: %f",[myProgressIndicator progress]); 

追蹤一系列request的上傳進度

這個例子中, myProgressIndicator是個 NSProgressIndicator, myQueue是個ASINetworkQueue.

  1. - (void)uploadSomethingFiveTimes:(NSURL *)url 
  2.    [myQueue cancelAllOperations]; 
  3.    [myQueue setUploadProgressDelegate:myProgressIndicator]; 
  4.    [myQueue setDelegate:self]; 
  5.    [myQueue setRequestDidFinishSelector:@selector(queueComplete:)]; 
  6.    int i; 
  7.    for (i=0; i<5; i++) { 
  8.       ASIHTTPRequest *request = [ASIFormDataRequest requestWithURL:url]; 
  9.       [request setPostBody:[@"Some data" dataUsingEncoding:NSUTF8StringEncoding]]; 
  10.       [myQueue addOperation:request]; 
  11.    } 
  12.    [myQueue go]; 
  13.   
  14. - (void)queueComplete:(ASINetworkQueue *)queue 
  15.    NSLog(@"Max: %f, Value: %f", [myProgressIndicator maxValue],[myProgressIndicator doubleValue]); 

精確進度條vs簡單進度條

ASIHTTPRequest提供兩種進度條顯示,簡單進度條和精確進度條,使用ASIHTTPRequests 和ASINetworkQueues的showAccurateProgress 來控制。為一個request設置showAccurateProgress只會對該request有效。如果你為一個隊列設置showAccurateProgress,那么會影響隊列里所有的request。

簡單進度條

當使用簡單進度條時,進度條只會在一個request完成時才更新。對于單個request,這意味著你只有兩個進度狀態:0%和100%。對于一個有5個request的隊列來說,有五個狀態:0%,25%,50%,75%,100%,每個request完成時,進度條增長一次。

簡單進度條(showAccurateProgress = NO)是ASINetworkQueue的默認值,適用于大量小數據請求。

精確進度條

當使用精確進度條時,每當字節被上傳或下載時,進度條都會更新。它適用于上傳/下載大塊數據的請求,并且會更好的顯示已經發送/接收的數據量。

使用精確進度條追蹤上傳會輕微降低界面效率,因為進度delegate(一般是UIProgressViews 或NSProgressIndicators)會更頻繁地重繪。

使用精確進度條追蹤下載會更影響界面效率,因為隊列會先為每個GET型request進行HEAD請求,以便統計總下載量。強烈推薦對下載大文件的隊列使用精確進度條,但是要避免對大量小數據請求使用精確進度條。

精確進度條(showAccurateProgress = YES)是以同步方式執行的ASIHTTPRequest的默認值。

自定義進度追蹤

ASIProgressDelegate 協議定義了所有能更新一個request進度的方法。多數情況下,設置你的uploadProgressDelegate或者 downloadProgressDelegate為NSProgressIndicator或者UIProgressView會很好。但是,如果你想進行更復雜的追蹤,你的進度delegate實現下列函數要比 setProgress: (iOS) 或者 setDoubleValue: / setMaxValue: (Mac)好:

這些函數允許你在實際量的數據被上傳或下載時更新進度,而非簡單方法的0到1之間的數字。

downloadProgressDelegates方法

  • request:didReceiveBytes: 每次request下載了更多數據時,這個函數會被調用(注意,這個函數與一般的代理實現的 request:didReceiveData:函數不同)。
  • request:incrementDownloadSizeBy: 當下載的大小發生改變時,這個函數會被調用,傳入的參數是你需要增加的大小。這通常發生在request收到響應頭并且找到下載大小時。

uploadProgressDelegates方法

  • request:didSendBytes: 每次request可以發送更多數據時,這個函數會被調用。注意:當一個request需要消除上傳進度時(通常是該request發送了一段數據,但是因為授權失敗或者其他什么原因導致這段數據需要重發)這個函數會被傳入一個小于零的數字。
責任編輯:閆佳明 來源: dreamingwish
相關推薦

2013-07-22 14:38:00

iOS開發ASIHTTPRequ

2013-07-21 18:22:59

iOS開發ASIHTTPRequ

2013-07-21 18:18:00

iOS開發ASIHttpRequ

2013-07-22 14:15:17

iOS開發ASIHTTPRequ

2013-07-22 14:33:15

iOS開發ASIHTTPRequ

2013-07-22 13:54:32

iOS開發ASIHTTPRequ

2013-07-21 18:32:13

iOS開發ASIHTTPRequ

2013-07-22 14:43:57

iOS開發ASIHTTPRequ

2013-07-22 14:25:29

iOS開發ASIHTTPRequ

2013-07-21 18:09:21

iOS開發ASIHttpRequ創建和執行reques

2013-07-22 14:02:17

iOS開發ASIHTTPRequ

2013-07-22 13:48:55

iOS開發ASIHTTPRequ使用Cookie

2013-07-22 14:29:35

iOS開發ASIHTTPRequ

2013-07-21 18:04:22

ASIHttpRequiOS開發

2013-03-25 14:13:23

iOSASIHTTPRequ

2011-08-22 10:06:38

IOS開發ASIHTTPRequHTTP 請求

2013-07-22 14:10:26

iOS開發ASIHTTPRequ

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-12 13:35:23

iPhone文件流ASIHTTPRequ

2013-07-22 14:47:56

iOS開發iOS5中ASIHtt
點贊
收藏

51CTO技術棧公眾號

亚洲欧洲在线观看av| 欧美性xxxxxx少妇| 国产成人免费网站| 成人免费黄色在线| 国产日韩成人精品| 欧美极品少妇xxxxⅹ高跟鞋| 精品成人在线视频| 欧美高清视频一二三区| 欧美三级视频在线| 国产视频一区在线播放| 午夜视频久久久久久| 欧美日韩国产大片| 98色花堂精品视频在线观看| 国产精品久久久久久久久久久久久久久 | 精品在线不卡| 色吧亚洲视频| 视频免费在线看| av在线私库| 欧美激情影院| 国产性色一区二区| 6080亚洲精品一区二区| 精品视频在线观看日韩| 日韩在线免费av| 成人高清在线观看| 久久精品免费一区二区| 成人黄色免费| 欧美精品日日操| 欧美日韩性在线观看| 天堂中文最新版在线中文| 日韩电影免费在线观看| 丰满白嫩尤物一区二区| 亚洲天堂福利av| 亚洲精品国精品久久99热| www.日韩av.com| 91高清免费视频| 分分操这里只有精品| 麻豆免费在线视频| 欧美亚洲tv| 激情综合色播激情啊| 亚洲第一福利专区| 中文字幕有码在线观看| 精品99在线| 不卡视频在线看| 最近2019中文字幕一页二页| 97人人爽人人喊人人模波多| 91欧美精品成人综合在线观看| 久久久国产精品一区二区三区| 久久久久久青草| 婷婷精品在线| 从欧美一区二区三区| 亚洲天堂av高清| 日本成人性视频| 岛国在线大片| 欧美亚洲在线日韩| 97se狠狠狠综合亚洲狠狠| 日韩成人在线播放| 亚洲欧美国产精品桃花| 97电影在线| 日韩成人免费在线| 亚洲成在人线av| 影音先锋男人的网站| 中文字幕资源网在线观看免费| 久久伦理在线| 亚洲国产精品成人综合| 人妖精品videosex性欧美| 欧美a v在线播放| 亚洲日本欧美在线| 天天干天天操天天玩| 国产伦精品一区二区三区在线播放 | 成人av电影在线观看| 永久免费看mv网站入口亚洲| 日本在线观看a| 亚洲激情一区| 欧美黄色免费网站| 校园春色欧美| 成人黄色大片在线观看 | a级黄色片网站| www.一区| 在线国产亚洲欧美| 日韩欧美精品久久| 高清在线一区二区| 亚洲电影第三页| 视频在线99re| 亚洲国产网址| 日韩电影免费在线观看中文字幕| 欧美xxxx18国产| 成人在线观看网址| 韩国精品视频在线观看| 亚洲精品国产精品乱码不99| 蜜桃av噜噜一区二区三| eeuss国产一区二区三区四区| 在线视频你懂得一区| 国产淫片av片久久久久久| 夜间精品视频| 美女精品视频一区| 老司机99精品99| 亚洲国产精品久久久久婷婷884 | 国产午夜精品久久久久免费视 | 国模精品一区二区| 欧美调教视频| 欧美国产日产图区| yellow中文字幕久久| 男女爱爱视频网站| 黄网站在线观| 久久久久国产一区二区三区四区| 欧美成在线视频| 日韩免费毛片视频| 玖玖玖国产精品| 性欧美xxxx交| 精品国产乱码久久久久软件| 亚洲一区二区三区成人| 国产精品美女久久久久aⅴ| 精品一区二区国产| 成人精品影院| 高清欧美一区二区三区| 色呦呦视频在线观看| 一本一道久久a久久精品| 国产一级大片| 亚洲精品美腿丝袜| 午夜伦伦电影理论片费看| 成人在线视频首页| 影音先锋成人资源网站| 精品一区二区三区不卡 | 亚洲图片在线| 91嫩草在线| 欧美激情综合| 韩国v欧美v日本v亚洲| 国产精品扒开腿做爽爽爽视频软件| 91黄色在线观看| 久久婷五月综合| 成人免费视频在线观看| 啊啊啊一区二区| av黄色在线| 国产精品成人一区二区艾草| 黄色一级在线视频| 99久久777色| 中文字幕在线亚洲三区| 精品一区二区久久久| 国产精品h视频| 精品在线观看视频| 久久久久久精| 欧美精品福利| 免费在线成人av| 日韩在线看片| 国产精品.com| 亚洲欧美网站| 日韩在线观看a| 亚洲欧美色一区| 91美女视频在线| 日韩欧美国产综合| www.久久.com| 国产精品草莓在线免费观看| 精品一区二区三区视频在线播放 | 一区二区电影在线观看| 国产精品一二三视频| 久久精品道一区二区三区| 蜜桃视频成人在线观看| 国产喂奶挤奶一区二区三区| 成人看片app| 欧美精品丝袜中出| 中文字幕综合| 91精品在线一区| 国内不卡的二区三区中文字幕 | 国产一区二区三区在线看麻豆| 色一情一乱一伦一区二区三区日本| 国产精品久久久久久久久免费桃花| 五十度飞在线播放| 91.成人天堂一区| 国产精品美女久久久久| 69174成人网| 粉嫩蜜臀av国产精品网站| aaa一级毛片| 日韩成人久久久| 丝袜av一区| 日本一区二区不卡高清更新| 成人精品免费看| 精品电影在线| 国产亚洲欧美日韩美女| 国产精品av久久久久久麻豆网| 日韩黄色片在线| 欧美伊人久久久久久久久影院 | 57pao国产成人免费| 久久一区二区三区超碰国产精品| 污网站免费看| 久久久国产视频| 国产精品88888| av福利导福航大全在线| 国产日韩一区二区| 欧美丝袜美女中出在线| 国产麻豆一区二区三区精品视频| 夫妻免费无码v看片| 亚洲精品www久久久| 国内成人自拍视频| 无码小电影在线观看网站免费| 日韩av图片| 在线成人一区二区| 久久久久久久久久久久久夜| 久久九九热re6这里有精品| 免费羞羞视频网站| 青草热久免费精品视频|