iOS 沙盒機制

iOS的應用只能訪問系統爲該應用創建的區域,不可訪問其他區域,這塊區域就是沙盒(sandBox)。我們常常把一些圖片,屬性文件(plist文件)等等存在到該目錄下,以便開發中使用。

1.獲取沙盒路徑

a.獲取模擬器沙盒路徑

如果在開發中,你不知道你想查找的應用沙盒路徑的話,你可以通過NSHomeDirectory()這個方法來打印你的沙盒路徑。

eg:

NSLog(@"沙盒路徑---->%@",NSHomeDirectory());
運行後可見控制檯輸出如下:


控制檯輸出的就是你想查找的應用沙盒地址。使用command+shift+G,把控制檯輸出的路徑複製粘貼,然後回車就可以進入到該應用的沙盒中。

b.獲取真機沙盒路徑

如果在開發中,需要獲取真機的沙盒地址以查看某些東西是否按預期存儲成功的話。

步驟是:

ba.連接真機到xcode,運行應用,即項目;

bb.點擊Finder上的Window,點擊Window,如下圖所示


bc.點擊window之後,出現下拉菜單,選擇Device,進入下圖所示

bd.如下圖所示操作

be.當你完成bd之後,指定一個位置,例如說桌面,點擊下載,獲取一個包。

bf.右鍵點擊打開包內容,o了。

2.沙盒下文件夾構造以及作用

沙盒下共有3個文件夾分別是:Documents、Library、tmp。作用如下:

Documents

1.我們常常將應用程序的數據文件保存在該目錄下。不過這些數據類型基本屬於不可再生的數據

2.這個文件夾會被iTunes同步

3.獲取該目錄的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSLog(@"Document路徑------>%@", path);

Library

1.存儲程序的默認設置或其它狀態信息

2.該文件夾會被iTunes同步;

3.獲取的該目錄的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSLog(@"Library路徑----->%@", path);

4.本目錄還有兩個子目錄分別是:Caches和Preferences

Library/Caches

1.主要是緩存文件(可再生的文件,比如網絡請求的數據),用戶使用過程中緩存都可以保存在這個目錄中。

2.獲取該目錄的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);

Library/Preferences

1.常用語保存一些偏好設置;

tmp

1.僅是提供一個即時創建臨時文件的地方

2.該文件夾不會被iTunes同步;

3.獲取該目錄的方法是:

NSString *tmpDir = NSTemporaryDirectory();  
 NSLog(@"%@", tmpDir); 

發佈了39 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章