一辩昆、持久化處理:即把數(shù)據(jù)保存在硬盤中,讓它一直存在
每個(gè)項(xiàng)目安裝到iOS設(shè)備上以后旨袒,iOS操作系統(tǒng)會(huì)自動(dòng)開(kāi)辟出兩個(gè)空間:
- 空間1:用于存儲(chǔ)IPA的執(zhí)行文件汁针,即應(yīng)用程序源碼.這里的文件都是只讀的,可以使用
NSBoundle
來(lái)讀取這個(gè)文件夾的內(nèi)容砚尽。 - 空間2:沙盒
SandBox
專門給IPA用于存儲(chǔ)數(shù)據(jù)的施无。這里的數(shù)據(jù)是在硬盤上,所以不會(huì)隨著程序的關(guān)閉而消失必孤。
二猾骡、沙盒中一共有三個(gè)文件夾:
- Documents:專門提供給開(kāi)發(fā)者用于存儲(chǔ)各種數(shù)據(jù)的。
- Library:里面存放的是默認(rèn)的用戶配置文件plist敷搪,
SDWebImage
會(huì)把從網(wǎng)絡(luò)上加載的圖片存放在這里兴想。 - tmp:臨時(shí)文件,通常用于從網(wǎng)絡(luò)上下載數(shù)據(jù)時(shí)赡勘,先存放到這個(gè)文件夾里嫂便。當(dāng)下載完畢后再移到哦正規(guī)的文件夾。
讀取沙盒路徑的方法有兩個(gè):
- OC直接獲取的方法:得到沙盒路徑.
NSString *sandBoxPath = NSHomeDirectory();
- 使用C的方法獲取沙盒路徑:得到Documents路徑.
參數(shù)1:目錄闸与,枚舉類型毙替,表示要搜索的目錄類型。
參數(shù)2:域践樱,表示搜索的范圍厂画,NSUserDomainMask
表示從當(dāng)前應(yīng)用的沙盒目錄中搜索。
參數(shù)3:表示路徑是否要展開(kāi)拷邢,YES
直接顯示文件夾名字袱院,NO
直接顯示文件夾的具體路徑。
NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
進(jìn)入沙盒中的Documents
文件夾:
NSString *docPath = [sandBoxPath stringByAppendingPathComponent:@"Documents"];
直接獲取臨時(shí)文件夾的目錄:
NSString *tmpPath = NSTemporaryDirectory();