一.簡(jiǎn)介
- 在iOS App開(kāi)發(fā)中,會(huì)遇到一些數(shù)據(jù)需要持續(xù)性保留;根據(jù)儲(chǔ)存介質(zhì)的不同,主要分為內(nèi)存緩存和硬盤緩存.
-
內(nèi)存緩存
1.特性: 把數(shù)據(jù)寫(xiě)入(緩存)在內(nèi)存中,App退出時(shí)會(huì)被清除.
2.使用場(chǎng)景: 儲(chǔ)存一些臨時(shí)數(shù)據(jù),一般為短時(shí)間使用但創(chuàng)建昂貴的對(duì)象.
3.優(yōu)勢(shì): 重用這些對(duì)象可以優(yōu)化性能,不需要重復(fù)的創(chuàng)建銷毀,節(jié)省CPU和內(nèi)存資源.讀寫(xiě)速度較快. -
硬盤緩存
1.特性: 把數(shù)據(jù)寫(xiě)入(儲(chǔ)存)在硬盤中,App卸載時(shí)會(huì)被清除(部分設(shè)置數(shù)據(jù)可由用戶在卸載時(shí)選擇是否刪除;如果用戶選擇不刪除,在iOS系統(tǒng)重裝或抹掉所有數(shù)據(jù)之前,重新下載此App,數(shù)據(jù)還能恢復(fù)).
2.使用場(chǎng)景: 儲(chǔ)存一些需要長(zhǎng)久保存的數(shù)據(jù),一般為用戶設(shè)置相關(guān)的數(shù)據(jù),和不需要經(jīng)常更新,且占用大量資源的數(shù)據(jù)(如音視頻)
3.優(yōu)勢(shì): 再次復(fù)用這些數(shù)據(jù)時(shí),不需要調(diào)用網(wǎng)絡(luò)接口,節(jié)省服務(wù)器資源,提高讀取效率,提升用戶體驗(yàn).讀寫(xiě)速度較慢.
二.內(nèi)存緩存
-
緩存方案
1.NSCache
三.硬盤緩存
基礎(chǔ)資料
1.沙盒(Standbox)
2.數(shù)據(jù)庫(kù)(Database)緩存方案
1.Property List
2.NSBundle
3.NSFileManager
4.NSUserDefaults
5.NSKeyedArchiver/NSKeyedUnarchiver
6.SQLite
7.CoreData
8.FMDB
三.內(nèi)存+硬盤混合緩存
-
緩存方案
1.NSURLCache
2.YYCache
結(jié)語(yǔ)
1.開(kāi)發(fā)者可根據(jù)業(yè)務(wù)場(chǎng)景選擇合適的持久化方案
2.如需了解更多儲(chǔ)存方案請(qǐng)下方留言,本人會(huì)逐步更新完善此章節(jié)!