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);