1. 程式人生 > >iOS沙盒目錄中Documents, Library, tmp的作用和區別

iOS沙盒目錄中Documents, Library, tmp的作用和區別

1.Documents:

只有使用者生成的檔案、其他資料及其他程式不能重新建立的檔案,應該儲存在<Application_Home>/Documents目錄下面,並將通過iCloud自動備份。

2.Library

可以重新下載或者重新生成的資料應該儲存在<Application_Home>/Library /caches目錄下面。舉個例子,比如雜誌、新聞、地圖應用使用的資料庫快取檔案和可下載內容應該儲存到這個資料夾。

3.tmp:

只是臨時使用的資料應該儲存在<Application_Home> / tmp 資料夾,tmp目錄不是你程式退出的時候就清空,是在你記憶體不足的情況系統會給你清空,看是網路快取的資料還是本地儲存的,如果本地儲存你可以放在doc目錄。儘管iCloud不會備份這些檔案,但在應用使用完這些資料之後要注意隨時刪除,避免佔用使用者裝置的空間。

//獲取各個目錄路徑的方法,以Documents為例,Library,tmp類似

//方法一

//1、取得Documents路徑的方法:

-(NSString *)documentFolder{

    return [NSHomeDirectory( ) stringByAppendingPathComponent:@"Documents"];

}

//2、取得Documents中某個檔案的路徑:

NSString *path =[ [ self documentFolder]  stringByAppendingPathComponent:@"image.png" ];

//方法二

//1,獲取家目錄路徑的函式:

NSString *homeDir = NSHomeDirectory();

//2,獲取Documents目錄路徑的方法:

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

NSString *docDir = [paths objectAtIndex:0];

//3,獲取Caches目錄路徑的方法:

NSArray *paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString *cachesDir = [paths objectAtIndex:0];

//獲取tmp目錄路徑的方法:

NSString *tmpDir = NSTemporaryDirectory();

注意:

    一定要把要存的檔案存到正確的位置,不然在稽核的時候有可能因為違反蘋果的規則而被拒!

本文轉自:http://chuib.wang/archives/51