iOS數(shù)據(jù)存儲(chǔ)之應(yīng)用程序沙盒

應(yīng)用程序沙盒

iOS應(yīng)用程序只能在系統(tǒng)為該應(yīng)用所分配的文件區(qū)域下讀/寫(xiě)文件,這個(gè)文件區(qū)域就是沙盒.
沙盒機(jī)制:一種安全機(jī)制,保證每個(gè)應(yīng)用程序只能訪問(wèn)本沙盒內(nèi)的數(shù)據(jù),避免與其他應(yīng)用發(fā)生沖突.
查看沙盒:Finder :shift + comand+ g快速到指定路徑(獲取方法_通過(guò)xcode打印NSHomeDirectory())
示例路徑:/Users/用戶名/Library/Developer/CoreSimulator/Devices/7413FCDA-8FD4-49C1-A16C-05E361A68707/data/Containers/Data/Application/18AF754B-F8F3-4DF7-9035-C48C5671BFAB

文件結(jié)構(gòu):


文件結(jié)構(gòu)
sandbox

相關(guān)路徑獲取方法

沙盒路徑

NSString *NSHomeDirectory(void);

Documents目錄

保存應(yīng)用程序的數(shù)據(jù),文件.
一般:數(shù)據(jù)庫(kù)文件,一些常用文件(writeTofile:),網(wǎng)絡(luò)下載的文件等等

NSSearchPathForDirectoriesInDomains返回的是符合條件的所有目錄,Mac不太了解,可以看出,這個(gè)方法最初是為Mac OS 設(shè)計(jì)的,Mac OS中NSUserDomainMask代表查看當(dāng)前用戶的Home目錄,而iOS下只有一個(gè)對(duì)應(yīng)的目錄,直接取第一個(gè)元素或者最后一個(gè)元素即可.第一個(gè)參數(shù)傳入需要查找的文件夾Documens,第二個(gè)參數(shù)NSUserDomainMask代表僅搜索應(yīng)用程序沙盒.

NSString *documentsDirectory(){
    return NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
}

Tep目錄

該目錄供應(yīng)用程序存儲(chǔ)臨時(shí)文件,當(dāng)iOS執(zhí)行同步時(shí),iTunes 不會(huì)備份tmp目錄下的文件,因此當(dāng)應(yīng)用程序不再需要某個(gè)臨時(shí)文件時(shí),應(yīng)該負(fù)責(zé)刪除tmp目錄下的臨時(shí)文件,避免占用系統(tǒng)空間.

 NSTemporaryDirectory();

Library

一般Library/Caches存儲(chǔ)緩存數(shù)據(jù)(NSCache),比如SDWebimage是將圖片存在該文件下.
Library/Preferences存儲(chǔ)用戶偏好設(shè)置,即通過(guò)NSUserDefault存儲(chǔ)的數(shù)據(jù),會(huì)建立一個(gè)以Bundle identifier.plist命名的文件,在該目錄下.

//Libary
 NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
//Caches
NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
    

文件保存

單文件保存:
對(duì)于NSArray,NSDictionary 可以通過(guò)writeToFile:atomically寫(xiě)入單個(gè)文件,通過(guò)arrayWithContentsOfFile:或者dictionaryWithContentsOfFile:讀取集合中的內(nèi)容.簡(jiǎn)單易用,但是每次讀取文件內(nèi)容總是一次性加載全部文件內(nèi)容,可能會(huì)導(dǎo)致內(nèi)存緊張,即使改動(dòng)很小的一部分內(nèi)容,也需要全部重新寫(xiě)入文件.
所以,如果應(yīng)用程序需要保存,讀取的數(shù)據(jù)量不大,可以使用NSArray,NSDictionary來(lái)保存,讀取程序數(shù)據(jù).
多文件保存:
可用于保存多個(gè)相互關(guān)聯(lián)性較小的文件內(nèi)容.可以避免一次性加載,修改需要全部寫(xiě)入.但是文件過(guò)多會(huì)容易混亂,需要建立額外的數(shù)據(jù)結(jié)構(gòu)去管理文件和內(nèi)容之間的關(guān)系.
少量數(shù)據(jù),可以采用NSUserdefault或者單文件存儲(chǔ),當(dāng)遇到大量數(shù)據(jù)存儲(chǔ)時(shí),我們需要借助SQLite3或者Core Date來(lái)管理數(shù)據(jù).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胰蝠,更是在濱河造成了極大的恐慌,老刑警劉巖藏澳,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耸采,死亡現(xiàn)場(chǎng)離奇詭異场靴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)靡馁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)机久,“玉大人臭墨,你說(shuō)我怎么就攤上這事⊥碳樱” “怎么了裙犹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵尽狠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叶圃,道長(zhǎng)袄膏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任掺冠,我火速辦了婚禮沉馆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘德崭。我一直安慰自己斥黑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布眉厨。 她就那樣靜靜地躺著锌奴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪憾股。 梳的紋絲不亂的頭發(fā)上鹿蜀,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音服球,去河邊找鬼茴恰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斩熊,可吹牛的內(nèi)容都是我干的往枣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粉渠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼分冈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起渣叛,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丈秩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后淳衙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蘑秽,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年箫攀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肠牲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靴跛,死狀恐怖缀雳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梢睛,我是刑警寧澤肥印,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布识椰,位于F島的核電站,受9級(jí)特大地震影響深碱,放射性物質(zhì)發(fā)生泄漏腹鹉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一敷硅、第九天 我趴在偏房一處隱蔽的房頂上張望功咒。 院中可真熱鬧,春花似錦绞蹦、人聲如沸力奋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)景殷。三九已至,卻和暖如春锉走,著一層夾襖步出監(jiān)牢的瞬間滨彻,已是汗流浹背藕届。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工挪蹭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人休偶。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓梁厉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親踏兜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子词顾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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