ObjectiveC的緩存框架EGOCache在iOSApp開發(fā)中的使用_第1頁
ObjectiveC的緩存框架EGOCache在iOSApp開發(fā)中的使用_第2頁
ObjectiveC的緩存框架EGOCache在iOSApp開發(fā)中的使用_第3頁
ObjectiveC的緩存框架EGOCache在iOSApp開發(fā)中的使用_第4頁
ObjectiveC的緩存框架EGOCache在iOSApp開發(fā)中的使用_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Objective-CEGOCacheiOSAppEGOCacheEGOCacheEGOCacheisasimplther,ead-skafeyevaluceachestorIeth.asnativesuppofrotNrSStriUI/NSIamnadgNeS,Datab,utcanstoraneythinthgatimplemench.editemexpirafetetrhetimeouwt,hichbydefauislotn,deay.EGOCachee-vaeSStiSaeataEGOCacheEGOCachehEGOCacheEGOCachehEGOCachevoid)clearCa

2、cheEGOCacheOOL)hasCacheSSntruiCocoap然后執(zhí)行:復(fù)制代碼代碼如下用法用緩存存儲(chǔ):復(fù)制代碼代碼如下:把我保存起來吧讀?。簭?fù)制代碼代碼如下是不是感覺跟NSDi存框架。很相似,確實(shí),前面我們說了是基于的緩用緩存存儲(chǔ):復(fù)制代碼代碼如下讀?。簭?fù)制代碼代碼如下用緩存存儲(chǔ):復(fù)制代碼代碼如下讀取:復(fù)制代碼代碼如下如何檢測緩存時(shí)間過期可以設(shè)定緩存過期時(shí)間,默認(rèn)是天。查看了一下源碼,設(shè)置默認(rèn)時(shí)間:復(fù)制代碼代碼如下剛好是一天時(shí)間。為什么要提供設(shè)定緩存過期時(shí)間呢?或者說設(shè)定緩存過期時(shí)間有什么好處呢?我覺得最大的好處就是可以定時(shí)清除緩存。可以設(shè)置某一項(xiàng)的緩存時(shí)間,很方便管理緩存。那么問

3、題來了:是怎么檢測緩存過期時(shí)間的呢?2檢.測到時(shí)間過期之后,什么時(shí)候觸發(fā)刪除緩存項(xiàng)的?帶著這兩個(gè)問題,我們來繼續(xù)分析。你會(huì)怎么實(shí)現(xiàn)記得在公司里,老板經(jīng)常會(huì)舉這樣的例子:某某同志,剛來我們公司的時(shí)候,遇到問題就知道抱怨。從來不知道去思考怎么解決,只知道把問題拋給領(lǐng)導(dǎo)。工作半年下來,成長了很多?,F(xiàn)在碰到問題,不僅把問題拋出來,而且還提供了自己的解決方案.類似的例子,相信大家都聽過。同樣,既然前面我們提出這兩個(gè)問題,我們也先來思考一下,如果我們來做該怎么解決?如果讓我來寫的話,我腦海里初步實(shí)現(xiàn)方法有幾個(gè):1通.過定時(shí)器來輪詢,每隔一段時(shí)間檢測一次。寫一個(gè)循環(huán)來檢測。3每.次去讀取緩存項(xiàng)的時(shí)候,判斷緩

4、存時(shí)間有沒有過期。沒過期,就返回讀取的緩存項(xiàng);否則,返回。4當(dāng).然,還有一些方法,不一一例舉了。仔細(xì)想想,這些方法弊端很容易顯露出來。為了小小的緩存時(shí)間,就用定時(shí)器輪詢,顯然是資源浪費(fèi)跟方法1差不多。每次讀取的時(shí)候判斷是否過期,如果一直不讀取,的緩存會(huì)越來越大,也不可取。這些方法都被排除了,還有好的方法嗎?繼續(xù)往下看:是怎么實(shí)現(xiàn)的?仔細(xì)查看源碼,發(fā)現(xiàn)在方法里,每次初始化實(shí)例對(duì)象的時(shí),會(huì)遍歷一遍文件中所有已存在的緩存項(xiàng),拿每個(gè)緩存項(xiàng)的時(shí)間和當(dāng)前時(shí)間作比較,緩存項(xiàng)過期時(shí)間早于當(dāng)前時(shí)間,則刪除對(duì)應(yīng)緩存文件,并刪除文件中對(duì)應(yīng)的記錄。具體實(shí)現(xiàn)代碼如下:讀取緩存項(xiàng)信息復(fù)制代碼代碼如下獲取當(dāng)前時(shí)間的NSTi

5、meInterv復(fù)制代碼代碼如下:聲明保存過期的緩存項(xiàng)對(duì)應(yīng)的復(fù)制代碼代碼如下:遍歷緩存項(xiàng)信息并判斷緩存時(shí)間復(fù)制代碼代碼如下:判/斷緩存項(xiàng)過期時(shí)間是否早于當(dāng)前時(shí)間如/果緩存項(xiàng)過期時(shí)間早于當(dāng)前時(shí)間,移除緩存項(xiàng)把過期的緩存項(xiàng)對(duì)于的保存到里面刪除過期緩存項(xiàng)對(duì)于的key復(fù)制代碼代碼如下:看到這些,是不是覺得人家思路特牛叉,反正,我是覺得這個(gè)作者不簡單。到這一步就解決了嗎?還做了什么?細(xì)心的童鞋會(huì)發(fā)現(xiàn):是個(gè)單列類,也就是說整個(gè)程序應(yīng)用周期只初始化一次。復(fù)制代碼代碼如下:每次初始化的時(shí)候去判斷了緩存項(xiàng)是否過期,這樣做非常正確。思考一個(gè)場景:用戶打開,被初始化,并判斷了緩存項(xiàng)是否過期。如果剛好有一些緩存項(xiàng)在被初始化之后過期。這個(gè)時(shí)候我們依然可以讀到這個(gè)緩存項(xiàng)。這就不對(duì)了。繼續(xù)分析源碼發(fā)現(xiàn),在讀取一個(gè)緩存項(xiàng)的時(shí)候,先判斷緩存項(xiàng)是否存在,然后讀取緩存項(xiàng)(注意:是讀取初始化的時(shí)候沒有過期的緩存項(xiàng),并沒有說現(xiàn)在沒有過期),最后去判斷讀取到的緩存項(xiàng)跟當(dāng)前時(shí)間相比是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論