沙盒是什么?
就是一對沙子的盒嗎?
不對,
沙盒是:
iOS應(yīng)用程序只能在為該改程序創(chuàng)建的文件系統(tǒng)中讀取文件,不可以去其它地方訪問,此區(qū)域被成為沙盒,所以所有的非代碼文件都要保存在此,例如圖像,圖標(biāo),聲音,映像,屬性列表,文本文件等。
1.1、每個應(yīng)用程序都有自己的存儲空間
1.2、應(yīng)用程序不能翻過自己的圍墻去訪問別的存儲空間的內(nèi)容
1.3、應(yīng)用程序請求的數(shù)據(jù)都要通過權(quán)限檢測,假如不符合條件的話,不會被放行。
沙盒同時存在目錄結(jié)構(gòu)
默認(rèn)情況下,每個沙盒含有3個文件夾:Documents, Library 和 tmp。因?yàn)閼?yīng)用的沙盒機(jī)制,應(yīng)用只能在幾個目錄下讀寫文件.
'Documents':蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下,iTunes備份和恢復(fù)的時候會包括此目錄
'Library':存儲程序的默認(rèn)設(shè)置或其它狀態(tài)信息;
' Library/Caches':存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應(yīng)用退出刪除
'tmp':提供一個即時創(chuàng)建臨時文件的地方。
Ps:題外小知識,iTunes與iPhone同步時, 會備份所有'Documents' 和'Library'文件.
獲取沙盒目錄:
NSString *homeDirectory = NSHomeDirectory();
NSLog(@"path:%@", homeDirectory);
//位置為
2016-04-27 16:04:19.517 newTest[1392:262148] path:/Users/zhu/Library/Developer/CoreSimulator/Devices/D3784717-8BDE-4F5F-B382-6B838D1696E2/data/Containers/Data/Application/15E41826-DBE5-4BF3-B8D3-19EE1A8DB6F1
獲取Documents目錄
NSArray* Documents =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString * Document = [Documents objectAtIndex:0];
NSLog(@"path:%@", Document);
獲取Library目錄
NSArray* Librarys =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES);
NSString * Library = [Librarys objectAtIndex:0];
NSLog(@"%@", path);
獲取tmp目錄:
NSString*tmpDir = NSTemporaryDirectory();
NSLog(@"%@", tmpDir);
在說一個iTunes File sharing
就是能在iTunes上面?zhèn)魑募o應(yīng)用;

Snip20160427_6.png