下載列表實現(xiàn)

下載狀態(tài)維護:本地

1.為什么本地保存下載狀態(tài)。

因為本地文件被刪除,服務(wù)器是不知道的钾埂,所以無法記錄。(安卓是可以從文件夾刪除)

2.手動退出和后臺退出造成異常科平。

1.手動退出: 假設(shè)處于下載中褥紫,手動退出應(yīng)用。此時的下載狀態(tài)應(yīng)該更新為未下載(沒有斷點續(xù)傳)匠抗。

2.后臺退出同理: 長時間處于后臺被系統(tǒng)殺死故源。

解決法案:1.通過appDelegate回調(diào)監(jiān)聽捕捉事件。
2.在app啟動時候汞贸,數(shù)據(jù)初始化绳军。

3.本地實現(xiàn)方案:

本地存儲方案:1.數(shù)據(jù)庫。
2.key-value

最佳解決方案:使用數(shù)據(jù)庫:下載url-> 下載狀態(tài)->本地存儲文件路徑矢腻。

對應(yīng)表結(jié)構(gòu):

url status destinationUrl
http:url 0 文件路徑

根據(jù)url找到對應(yīng)下載狀態(tài)门驾,并且取到下載路徑內(nèi)容。


UI的更新:Cell的改變

1.cell重用導(dǎo)致下載狀態(tài)錯亂多柑。

因為重用機制:cell上的下載狀態(tài)會錯亂奶是。
例子:屏幕未出現(xiàn)的cell狀態(tài):未下載。屏幕第一條數(shù)據(jù)是下載中竣灌。cell重用聂沙,造成屏幕未出現(xiàn)的cell狀態(tài)錯亂為下載中。所以必須從model中時時更新初嘹。

2.cell下載狀態(tài):第一次初始化和下載點擊及汉。

既然用本地數(shù)據(jù)記錄,就要第一次從數(shù)據(jù)庫拿到初始數(shù)據(jù)屯烦。
既然用cell重用坷随,就要保證model中數(shù)據(jù)更新(內(nèi)存中)房铭。
造成問題:model數(shù)據(jù)來自網(wǎng)絡(luò),下載狀態(tài)數(shù)據(jù)來自本地温眉。

解決方案:下載狀態(tài)的更新統(tǒng)一來自model的數(shù)據(jù)缸匪,可以為model添加一個字段status。第一次網(wǎng)絡(luò)獲取model時候类溢,從本地拿到狀態(tài)為model賦值凌蔬。當(dāng)點擊下載時候,根據(jù)下載情況豌骏,更新對應(yīng)model的status龟梦。并監(jiān)聽model的status,更新cell的界面變化窃躲。


并發(fā)數(shù)的控制

1.NSOperationQuene

Quene有屬性maxConcurrentOperationCount最大并發(fā)數(shù)控制。
注意:只需保證NSOperationQuene初始化一次钦睡。

NSOperationQuene的理解:可以看作一條管道蒂窒,每個操作看作一段水流。(遵循先入先出原則)荞怒;并發(fā)數(shù)的控制類似蓄水池洒琢。
1.并發(fā)數(shù)為1:蓄水池有一個管子(NSOperationQuene)流入水池。只有一個水管(并發(fā)數(shù)的控制)流出水褐桌。此時只開啟一個異步線程衰抑。
2.并發(fā)數(shù)為10:蓄水池有一個管子(NSOperationQuene)流入水池。同時10個水管(并發(fā)數(shù)的控制)流出水荧嵌。此時開啟10個異步線程呛踊。

下邊是還沒來得及實現(xiàn):

2.GCD


斷點續(xù)傳


下載進度

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啦撮,隨后出現(xiàn)的幾起案子谭网,更是在濱河造成了極大的恐慌,老刑警劉巖赃春,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愉择,死亡現(xiàn)場離奇詭異,居然都是意外死亡织中,警方通過查閱死者的電腦和手機锥涕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狭吼,“玉大人层坠,你說我怎么就攤上這事〔耍” “怎么了窿春?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵拉一,是天一觀的道長。 經(jīng)常有香客問我旧乞,道長蔚润,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任尺栖,我火速辦了婚禮嫡纠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘延赌。我一直安慰自己除盏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布挫以。 她就那樣靜靜地躺著者蠕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掐松。 梳的紋絲不亂的頭發(fā)上踱侣,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音大磺,去河邊找鬼抡句。 笑死,一個胖子當(dāng)著我的面吹牛杠愧,可吹牛的內(nèi)容都是我干的待榔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼流济,長吁一口氣:“原來是場噩夢啊……” “哼锐锣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袭灯,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤刺下,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后稽荧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橘茉,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年姨丈,在試婚紗的時候發(fā)現(xiàn)自己被綠了畅卓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蟋恬,死狀恐怖翁潘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歼争,我是刑警寧澤拜马,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布渗勘,位于F島的核電站,受9級特大地震影響俩莽,放射性物質(zhì)發(fā)生泄漏旺坠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一扮超、第九天 我趴在偏房一處隱蔽的房頂上張望取刃。 院中可真熱鬧,春花似錦出刷、人聲如沸璧疗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崩侠。三九已至,卻和暖如春屁柏,著一層夾襖步出監(jiān)牢的瞬間啦膜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工淌喻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雀摘。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓裸删,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阵赠。 傳聞我的和親對象是個殘疾皇子涯塔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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