iOS 沙盒

   出於安全考慮,iOS系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下的文件(也有例外,比如系統通訊錄能在用戶授權的情況下被第三方應用訪問),這個規則把iOS系統封閉性展現的淋漓盡致。

   a.沙盒中幾個主要的目錄

   1.MyApp.app   2.Documents   3.Library   4.tmp

    NSLog(@" %@ ",NSTemporaryDirectory());

    NSLog(@" %@ ",[[NSBundle mainBundle] bundlePath]);

    NSLog(@" %@ ",NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES));

    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSLog(@" %@ ",[array objectAtIndex:0]);

     2014-11-13 19:36:14.475 DataSaveDemo[30321:226572]  /Users/wing/Library/Developer/CoreSimulator/Devices/84D052CE-D301-4C65-AA41-C52ACA38C327/data/Containers/Data/Application/4724245E-E912-43EE-8E15-7195E63F3CEC/tmp/

     2014-11-13 19:36:14.476 DataSaveDemo[30321:226572]  /Users/wing/Library/Developer/CoreSimulator/Devices/84D052CE-D301-4C65-AA41-C52ACA38C327/data/Containers/Bundle/Application/A379FC9E-6089-4E2E-97C0-338FDD52E6ED/DataSaveDemo.app

     2014-11-13 19:36:14.476 DataSaveDemo[30321:226572]  (

     "/Users/wing/Library/Developer/CoreSimulator/Devices/84D052CE-D301-4C65-AA41-C52ACA38C327/data/Containers/Data/Application/4724245E-E912-43EE-8E15-7195E63F3CEC/Documents"

     )

     2014-11-13 19:36:14.477 DataSaveDemo[30321:226572]  /Users/wing/Library/Developer/CoreSimulator/Devices/84D052CE-D301-4C65-AA41-C52ACA38C327/data/Containers/Data/Application/4724245E-E912-43EE-8E15-7195E63F3CEC/Documents


備註:該方法用於返回指定範圍內的指定名稱的目錄的路徑集合。有三個參數:directoryNSSearchPathDirectory類型的enum值,表明我們要搜索的目錄名稱,比如這裏用NSDocumentDirectory表明我們要搜索的是Documents目錄。如果我們將其換成NSCachesDirectory就表示我們搜索的是Library/Caches目錄。domainMaskNSSearchPathDomainMask類型的enum值,指定搜索範圍,這裏的NSUserDomainMask表示搜索的範圍限制於當前應用的沙盒目錄。還可以寫成NSLocalDomainMask(表示/Library)、NSNetworkDomainMask(表示/Network)等。expandTildeBOOL值,表示是否展開波浪線~。我們知道在iOS~的全寫形式是/User/userName,該值爲YES即表示寫成全寫形式,爲NO就表示直接寫成“~”


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章