一, 沙盒的根目錄有 有四個
第一個是:Documents 存儲在這個文件夾中的文件會永久保存,不能存太大的文件
itunes會同步,例如揣非,游戲應用可將游戲存檔保存在該目錄,注意:如果保存
網(wǎng)絡下載的大的數(shù)據(jù)钝尸,會被拒絕上架
第二,三個是:library: 這個文件夾中的文件,需要程序員自己去清理緩存,
Caches: 保存應用運行時生成的需要持久化的數(shù)據(jù),iTunes同步
設備時不會備份該目錄, 特點: 一般儲存體積大,不需要
備份的非重要的數(shù)據(jù) 值得注意的是需要提供緩存目錄清理
Preferences:系統(tǒng)偏好設置文件夾
iOS的setting(設置)應用會在該目錄中查找應用設置信息
iTunes 同步設備時會備份該目錄
第四個是:tmp:系統(tǒng)會自動清理保存應用運行時所需的臨時數(shù)據(jù),程序員無需關(guān)心該
目錄文件的刪除,系統(tǒng)會自動清理,iTunes也不會備份該目錄
二,沙盒路徑介紹以及結(jié)構(gòu)分析
a. 每個iOS應用都在自己的應用沙盒(應用沙盒就是應用的文件夾,)與其他文件系統(tǒng)隔離
b. 應用必須待在自己的沙盒里面,其他應用不能訪問該沙盒
c. 應用程序包:包含了所有的資源文件和可執(zhí)行文件,它是只讀
用代碼[NSBundle mainBundle]可以找到應用程序包
d . 程序運行時的數(shù)據(jù)需要保存在沙盒中
NSHomeDirectory() 可以訪問到沙盒主目錄
//1.主目錄
NSString *home =NSHomeDirectory();
//2.臨時目錄
NSString*tmp = NSTemporaryDirectory();
//3.文檔目錄
NSString*docDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
//4.緩存目錄
NSString*cacheDic = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
三. 用戶偏好
是一種類似于字典的操作方式:不能直接獲取位置
//1. 獲取用戶偏好
NSUserDefaults*defaluts = [NSUserDefaults standardUserDefaults];
//2.從用戶偏好中讀取數(shù)值
NSString *userName = [defalutsstringForKey:@"userName"];
if(userName.length >0) {
NSLog(@"%@",userName);
}else{
//在用戶偏好中設置數(shù)值
[defaluts setObject:@"daoge" forKey:@"userName"];
}
注意: 在Xcode 6.0 之前,用戶偏好的保存不是立即實現(xiàn)的,設置數(shù)值之后, 需要調(diào)用synchronize方法,在很多老項目中,仍然會發(fā)現(xiàn)此類代碼