一、iOS沙盒機(jī)制
iOS的應(yīng)用只能訪問為該應(yīng)用創(chuàng)建的區(qū)域,不可訪問其他區(qū)域,應(yīng)用的其他非代碼文件都存在此目錄下,包括圖片,屬性文件plist,bundle,nib文件等,這塊區(qū)域稱之為沙盒(sandBox)。
每個(gè)應(yīng)用都有屬于自己的存儲(chǔ)空間,即沙盒。
應(yīng)用只能訪問自己的沙盒,不可訪問其他區(qū)域。
如果應(yīng)用需要進(jìn)行文件操作,則必須將文件存放在沙盒中,尤其是數(shù)據(jù)庫文件,在電腦上操作時(shí),可以去訪問,但是如果要裝在真機(jī)上可以使用,必須將數(shù)據(jù)庫文件拷貝至沙盒中。
二、打開沙盒路徑
1、如果不知道沙盒路徑,可以在自己的應(yīng)用中打印其路徑。
NSLog(@"沙盒路徑:%@",NSHomeDirectory());
/Users/apple/Library/Application Support/iPhone Simulator/6.1/Applications/******-****-****-****-************
打開Finder,選擇前往-前往文件夾(或選擇快捷鍵command+shift+G)輸入打印出來的路徑即可
2、打開Finder,選擇前往并按住option鍵,進(jìn)入資源庫
選擇Application Support-iPhone Simulator-選擇模擬器版本,即可看到各個(gè)應(yīng)用的沙盒目錄。
選中其中一個(gè)目錄,即可看到程序的名稱的App文件。
三、目錄結(jié)構(gòu)
沙盒默認(rèn)情況下有三個(gè)目錄文件夾documents,Library,tmp及應(yīng)用的App文件,只可在相應(yīng)的文件夾中進(jìn)行操作
documents:一般用來存放應(yīng)用中建立的文件,如數(shù)據(jù)庫文件,或程序中瀏覽到的文件數(shù)據(jù)。如果進(jìn)行備份會(huì)將此文件夾中的文件包括其中;
Library:存儲(chǔ)應(yīng)用的默認(rèn)設(shè)置及狀態(tài)信息;
Library/cache:用來存放緩存文件,此文件夾下數(shù)據(jù)在應(yīng)用退出時(shí)不會(huì)刪除。備份時(shí)不會(huì)包括此文件夾;
tmp:存放即時(shí)穿件的臨時(shí)文件
帶圖標(biāo)的App文件:
選中后顯示包內(nèi)容,即可看到存儲(chǔ)的圖標(biāo),nib文件,屬性列表等
四、在沙盒中寫文件
在沙盒目錄的Documents文件夾下添加一個(gè)plist文件,添加圖片等方法相同
文件中有一個(gè)值OK,也可添加數(shù)組,字典等相關(guān)類型的內(nèi)容,只需將上文中的“OK”換成一個(gè)(id)類型的值即可
五、拷貝文件到沙盒目錄下
下面拷貝一個(gè)public.xml文件至document路徑下,也可拷貝其他文件,只需將文件名和類型對(duì)應(yīng)即可,尤其是database文件,一定要拷貝至沙盒才能使用。此文件不能是電腦中的文件,必須加入工程的Bundle中
新聞熱點(diǎn)
疑難解答
圖片精選