sandbox 內(nèi)存管理

一、什么是sandbox
每個iOS應(yīng)用都被限制在“沙盒”中,“沙盒”相當于一個加了僅主人可見權(quán)限的文件夾,蘋果對沙盒主要有以下限制。

1、應(yīng)用程序可以在自己的沙盒里運作,但是不能訪問任何其他應(yīng)用程序的沙盒
2、應(yīng)用程序間不能共享數(shù)據(jù),沙盒里的文件不能被復(fù)制到其他應(yīng)用程序文件夾中,也不能把其他應(yīng)用程序文件夾中的文件復(fù)制到沙盒里。
3、蘋果禁止任何讀、寫沙盒以外的文件,禁止應(yīng)用程序?qū)?nèi)容寫到沙盒以外的文件夾中。
4、 iOS應(yīng)用程序的沙盒中包括三個文件夾:

Documents
Apple官方建議將程序中建立的或程序瀏覽的文件數(shù)據(jù)都保存在Documents目錄里,iTunes備份數(shù)據(jù)時或恢復(fù)數(shù)據(jù)時,會備份或恢復(fù)此目錄;
Library
主要存儲的是默認的設(shè)置或其它的狀態(tài)信息。包含以下兩個文件夾:
Caches
存儲緩存文件,存儲應(yīng)用程序再次啟動所需的,itunes不會備份該目錄;
Preferences
存儲應(yīng)用程序偏好設(shè)置文件,一般不修改這里存放的文件;
tmp
提供的是一個存儲臨時文件的地方。iPhone一旦重啟tmp目錄下的內(nèi)容就會被清空。

二、如何獲取沙盒路徑
1、獲取沙盒根目錄
(1)、通過NSStringNSHomeDirectory(void)直接獲取 NSString homePath =NSHomeDirectory(); (2)、通過NSStringNSHomeDirectoryForUser(NSStringuserName)獲取
NSString *userName =NSUserName();
NSString *homePath2 = NSHomeDirectoryForUser(userName);

2、獲取沙盒其他文件路徑 Documents、Library、Caches通過一下方法進行搜索: NSArray*NSSearchPathForDirectoriesInDomains(NSSearchPathDirectorydirectory, NSSearchPathDomainMaskdomainMask, BOOL expandTilde)方法:
NSSearchPathDirectory,枚舉值,制定搜索沙盒中的子目錄
NSSearchPathDomainMask, 枚舉值,指定搜索范圍
expandTilde,是否顯示全路徑

①獲取Documents路徑
NSArray *arrayOfDocPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docPath = [arrayOfDocPath objectAtIndex:0];

②獲取Library路徑
NSArray *arrayOfLibPath =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *libPath = [arrayOfLibPath objectAtIndex:0];

③獲取Caches路徑
NSArray *arrayOfCache =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString *cachesPath = [arrayOfCache objectAtIndex:0];

④獲取Preferences路徑
NSString *prePath = [libPathstringByAppendingPathComponent:@"Preferences"];
//通過Library路徑拼接上文件夾名,一般不會讀取、修改該文件夾下的文件

⑤獲取tmp路徑
NSString *temPath =NSTemporaryDirectory();

⑥獲取app目錄
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];

⑦獲取app中資源文件路徑
NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"01loading.png" ofType:nil];
//該方法還有多個其他形式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容