標籤:
作為ios開發,其實很多時候要瞭解一些底層的東西才能有所進步,那麼今天就來分享下經常面對的ios的沙箱儲存吧。
首先要理解什麼是沙箱?
iOS中應用程式只能在為該改程式建立的檔案系統中讀取檔案,不可以去其它地方訪問,這個地區就被稱作沙箱,所以所有的非代碼檔案都要儲存在此,例像,表徵圖,聲音,映像,屬性列表,文字檔等。
打個比方吧,咱們去銀行辦事要講規矩吧,另外銀行也要安全的保障,不會讓你隨便的亂進入。當你需要訪問辦事情的時候,他會給你指定一個特定的地區讓你去存取你的東西,而每個人也要遵守它的規章制度。
那麼這個特定的地區是什麼的呢,就是沙箱唄,開啟沙箱的主目錄的方法說兩個,都可以
方法一:
NSString *path =NSHomeDirectory();//沙箱
NSLog(@"NSHomeDirectory:%@我是沙箱主目錄",path);
方法二:
NSString *userName =NSUserName();//沙箱
NSString *rootPath =NSHomeDirectoryForUser(userName);
NSLog(@"NSHomeDirectoryForUser:%@我是沙箱主目錄",rootPath);
沙箱的主目錄裡還裝著其他的東西,就好比銀行的金庫裡面子金庫,分別存放不同的東西。
首先介紹第一個Application,它是程式文檔目錄,不存放東西,你去也去不了
下面是重點(也就是說你能去的子金庫):
Document,library下面的Caches和Preferences,tmp
Document:一般存放需要持久化儲存的檔案,iTunes會自動備份這個目錄,檔案比如說程式建立或者瀏覽到的檔案資料等(反正不想讓它消失或者重要的都放這裡)
library中的Caches:指的就是緩衝,也就是程式運行時臨時的資料,比如你瀏覽的圖片,視頻什麼的,iTunes不會備份這個目錄,應用沒有運行時,它可能會被清除,記憶體不足是會被清除(反正就是體積大,需要暫時持久化的資料,不重要的東西,比片,視頻,這些從網上下載的東西就放這裡)
library中的Preference:指的是你的喜好設定,iTunes會自動備份這個目錄,它儲存一些喜好設定(比如使用者名稱,密碼,字型大小,夜間模式之類的)
tmp:顧名思義,它就是存放臨時檔案的資料,iTunes不會備份這個目錄,應用沒有運行時,應用退出後會被清除。
總結:需要長時間持久化儲存的東西放在Document,不重要,但是體積大的交給library,最後臨時的沒用的拿給tmp(他們對我們程式員的重要性也依次遞減)。
ios 沙箱其實很簡單(精華版)