iOS中的數(shù)據(jù)存儲(chǔ)

NSArray *documentPaths =

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);獲取沙盒中文件目錄的全路徑,其中的布爾值是否需要通過(guò)履婉,~擴(kuò)展路徑。

還有一種方法就是使用NSString

*sandboxPath = NSHomeDirectory();NSString

*documentPath = [sandboxPath

stringByAppendingPathComponent:@"Documents"];/

這樣直接拼接上去的話,可能會(huì)在未來(lái)的發(fā)送系統(tǒng)上發(fā)生改變劈彪。

往文件中寫入數(shù)據(jù)的方法:[data writeToFile:FileName

atomically:YES];//將NSData類型對(duì)象data寫入文件浇雹,文件名為FileName

從文件中讀出數(shù)據(jù):

NSData data=[NSData

dataWithContentsOfFile:FileName options:0 error:NULL];//從FileName中讀取出數(shù)據(jù)

2關(guān)于sqllite和coredata還有第三方框架(數(shù)據(jù)庫(kù)的東西)以后備用

http://www.cocoachina.com/ios/20141111/10190.html

3關(guān)于4中數(shù)據(jù)存儲(chǔ)注意的細(xì)節(jié)問(wèn)題:

plist:調(diào)用對(duì)象的writeToFile:...方法就可以寫入文件

調(diào)用對(duì)象的...WithContentOfFile方法就可以從文件中讀取對(duì)象內(nèi)容

偏好設(shè)置:本質(zhì)還是plist屬性列表的方式進(jìn)行存儲(chǔ)

只能存儲(chǔ)到一個(gè)文件夾中壹若,不能存儲(chǔ)大量的數(shù)據(jù)

nscoding:(歸檔/解檔)對(duì)象遵循nscoding協(xié)議稿蹲,如果父類也要?dú)w檔解當(dāng)扭勉,必須調(diào)用父類的!

系統(tǒng)會(huì)自動(dòng)調(diào)用场绿,(將對(duì)象寫入文件之前剖效,或者對(duì)象讀出之前)

3嫉入、NSUserDefautls將數(shù)據(jù)存儲(chǔ)在什么地方焰盗?

NSUserDefaults的文件就在Library(存檔文件夾璧尸,保存用戶的配置)下的Preferences偏好設(shè)置文件中。Documents放不可再生的配置文件熬拒,Library放可再生的數(shù)據(jù)文件爷光,temp文件夾在系統(tǒng)內(nèi)存不夠或者關(guān)機(jī)開(kāi)機(jī)的時(shí)候會(huì)自動(dòng)清除。Library下面還有一個(gè)Caches?就是硬盤緩存的位置澎粟,而且Library上一層的文件夾居然就是沙盒蛀序。讓我驚呆了,有沒(méi)有活烙?所以現(xiàn)在理解為什么說(shuō)刪除沙盒也可以刪除NSUserDefaults的文件了吧徐裸!更關(guān)鍵的是Caches與Prefereces同輩分,而NSUserDefault居然存在Prefereces的Plist配置文件的子文件中啸盏。簡(jiǎn)直就是URL緩存的孫子輩了重贺!

文/W378736045(簡(jiǎn)書作者)

原文鏈接:http://www.reibang.com/p/4d37bdef682d

著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)回懦,并標(biāo)注“簡(jiǎn)書作者”气笙。

本質(zhì)上來(lái)說(shuō),userDefaults算是plist的一個(gè)分支子文件夾罷了怯晕。如果想要?jiǎng)h掉的話潜圃,用removeObjectForKey或者刪掉沙盒,也就是你的應(yīng)用程序然后重新安裝就可以清空userDefaults里的鍵值對(duì)

緩存的應(yīng)用場(chǎng)景舟茶?

由于get請(qǐng)求一般只是查詢數(shù)據(jù)谭期,post請(qǐng)求一般發(fā)大量數(shù)據(jù)給服務(wù)器處理,因此一般只是需要對(duì)get請(qǐng)求做緩存處理吧凉。

以下部分有時(shí)間在研究隧出!

5、如何使用NSURLCache類進(jìn)行URL緩存客燕?

1鸳劳、使用方法?

使用之前首先必須明白使用NSURLCache類進(jìn)行緩存的原理也搓,每一個(gè)網(wǎng)絡(luò)請(qǐng)求都有一個(gè)對(duì)應(yīng)的網(wǎng)絡(luò)緩存回應(yīng)類赏廓,要想對(duì)某個(gè)GET請(qǐng)求進(jìn)行數(shù)據(jù)緩存,非常簡(jiǎn)單傍妒,只需輸入U(xiǎn)RL參數(shù)類方法創(chuàng)建一個(gè)可變的網(wǎng)絡(luò)請(qǐng)求對(duì)象幔摸,然后設(shè)置對(duì)象的緩存策略屬性(判斷有無(wú)緩存執(zhí)行不同的操作,包括使用緩存颤练、重新請(qǐng)求既忆、不再請(qǐng)求等),系統(tǒng)就會(huì)自動(dòng)利用NSURLCache將GET請(qǐng)求到的數(shù)據(jù)緩存到內(nèi)存緩存里。記住喲患雇!一定是存儲(chǔ)到了內(nèi)存緩存之中跃脊!

2、緩存策略苛吱?

對(duì)于不同的數(shù)據(jù)類型應(yīng)該使用不同的緩存策略酪术,需要及時(shí)更新的數(shù)據(jù)不能用緩存!比如股票翠储、彩票數(shù)據(jù)绘雁。固定頻率更新的數(shù)據(jù)可以定期更改緩存策略或者清除緩存來(lái)提高程序的響應(yīng)速度。

緩存策略主要包括:1援所、忽略緩存每次重新請(qǐng)求2庐舟、不存在Data數(shù)據(jù)才重新請(qǐng)求3、要么直接返回失敗要么只使用緩存的Data數(shù)據(jù)住拭,離線狀態(tài)4挪略、大多數(shù)情況下的緩存策略都是先驗(yàn)證本地?cái)?shù)據(jù)和遠(yuǎn)程數(shù)據(jù)是否相同,同則緩存不同則重新請(qǐng)求废酷。

3瘟檩、清除緩存?

清除緩存的前提是我們必須先要通過(guò)NSURLCache類創(chuàng)建一個(gè)單例類對(duì)象澈蟆,然后再通過(guò)這個(gè)緩存的單例類調(diào)用相應(yīng)的Remove方法來(lái)消除緩存墨辛。尤其注意,緩存類居然是一個(gè)單例類趴俘。

6睹簇、iOS

5之前只支持內(nèi)存緩存,同時(shí)支持內(nèi)存緩存和硬盤緩存是什么概念寥闪?也就是緩存原理太惠?

首先來(lái)說(shuō),如果是應(yīng)用第一次從網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)疲憋,手機(jī)應(yīng)用的硬盤緩存是沒(méi)有數(shù)據(jù)的凿渊,內(nèi)存緩存中也沒(méi)有數(shù)據(jù)。當(dāng)應(yīng)用對(duì)服務(wù)器的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)請(qǐng)求缚柳,請(qǐng)求到數(shù)據(jù)之后首先會(huì)將請(qǐng)求到的數(shù)據(jù)進(jìn)行解析和顯示埃脏,只要解析后顯示到了屏幕上,內(nèi)存緩存中便有了數(shù)據(jù)秋忙,然后再將服務(wù)器的數(shù)據(jù)緩存到手機(jī)的硬盤內(nèi)存也就是沙盒中彩掐,只要程序繼續(xù)運(yùn)行,內(nèi)存緩存便一直會(huì)有數(shù)據(jù)灰追,除非程序終止關(guān)閉堵幽。我理解的是狗超,所謂內(nèi)存緩存就是通過(guò)代碼創(chuàng)建的數(shù)據(jù)庫(kù)進(jìn)行的數(shù)據(jù)存儲(chǔ),只要運(yùn)行在內(nèi)存中的程序讀取了硬盤緩存里的數(shù)據(jù)朴下,那么內(nèi)存緩存就開(kāi)始有數(shù)據(jù)努咐,當(dāng)然內(nèi)存緩存會(huì)隨著程序的關(guān)閉而消失。我們還記得那個(gè)Library里的Cache文件夾吧桐猬,那里面就是硬盤緩存的位置麦撵。沒(méi)想到既然跟NSUserDefault存放在一個(gè)文件夾刽肠。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溃肪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子音五,更是在濱河造成了極大的恐慌惫撰,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躺涝,死亡現(xiàn)場(chǎng)離奇詭異厨钻,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)坚嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門夯膀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人苍蔬,你說(shuō)我怎么就攤上這事诱建。” “怎么了碟绑?”我有些...
    開(kāi)封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵俺猿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我格仲,道長(zhǎng)押袍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任凯肋,我火速辦了婚禮谊惭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侮东。我一直安慰自己圈盔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布苗桂。 她就那樣靜靜地躺著药磺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪煤伟。 梳的紋絲不亂的頭發(fā)上癌佩,一...
    開(kāi)封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天木缝,我揣著相機(jī)與錄音,去河邊找鬼。 笑死杠输,一個(gè)胖子當(dāng)著我的面吹牛憋槐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矫俺,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼掸冤!你這毒婦竟也來(lái)了厘托?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤稿湿,失蹤者是張志新(化名)和其女友劉穎铅匹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饺藤,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡包斑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涕俗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罗丰。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖再姑,靈堂內(nèi)的尸體忽然破棺而出萌抵,到底是詐尸還是另有隱情,我是刑警寧澤询刹,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布谜嫉,位于F島的核電站,受9級(jí)特大地震影響凹联,放射性物質(zhì)發(fā)生泄漏沐兰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一蔽挠、第九天 我趴在偏房一處隱蔽的房頂上張望住闯。 院中可真熱鬧,春花似錦澳淑、人聲如沸比原。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)量窘。三九已至,卻和暖如春氢拥,著一層夾襖步出監(jiān)牢的瞬間蚌铜,已是汗流浹背锨侯。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冬殃,地道東北人囚痴。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像审葬,于是被迫代替她去往敵國(guó)和親深滚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 摘要 本文介紹iOS中常用的應(yīng)用數(shù)據(jù)存儲(chǔ)方式及其詳細(xì)用法;本章介紹: XML屬性列表(plist)歸檔 , Pre...
    上冬十二閱讀 635評(píng)論 0 14
  • 一涣觉、應(yīng)用沙盒 一般情況下痴荐,iOS每個(gè)應(yīng)用程序都只能訪問(wèn)當(dāng)前沙盒目錄下的文件。 (一)旨枯、沙盒目錄 Documents...
    f1e583c455bf閱讀 358評(píng)論 0 0
  • 一蹬昌、本地沙盒沙盒沙盒是什么 沙盒,可以簡(jiǎn)單理解為App存儲(chǔ)數(shù)據(jù)的地方攀隔,所有非代碼文件都會(huì)存儲(chǔ)在其中,例如圖像栖榨,圖標(biāo)...
    玉米安愛(ài)吃甜玉米閱讀 418評(píng)論 0 0
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,150評(píng)論 30 470
  • 摘要 本文介紹iOS中常用的應(yīng)用數(shù)據(jù)存儲(chǔ)方式及其詳細(xì)用法;本章介紹: SQLite3 和 Core Data. i...
    上冬十二閱讀 1,116評(píng)論 3 17