iOS讀取沙盒目錄文件

iOS應(yīng)用程序只能在為該改程序創(chuàng)建的文件系統(tǒng)中讀取文件,不可以去其它地方訪問(wèn),此區(qū)域被成為沙盒。它包含三個(gè)文件夾:

  1. Temp:這個(gè)目錄用于存放臨時(shí)文件,保存應(yīng)用程序再次啟動(dòng)過(guò)程中不需要的信息。

  2. Documents: 蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下,iTunes備份和恢復(fù)的時(shí)候會(huì)包括此目錄,如用戶信息等永久性文件;

  3. Library: 它包含兩個(gè)文件夾 caches 和 preferences
    Library/Caches:存放緩存文件,iTunes不會(huì)備份此目錄,此目錄下文件不會(huì)在應(yīng)用退出刪除,如圖片、視頻緩存;
    Library/Preferences:包含應(yīng)用程序的偏好設(shè)置文件;

//沙盒的根目錄
NSString *homePath = NSHomeDirectory();

//沙盒Documents路徑
NSString *docuPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Library路徑
NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Library/Caches路徑
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

//沙盒中Temp路徑
NSString *tempPath = NSTemporaryDirectory();

舉個(gè)栗子:

// 拿到當(dāng)前版本號(hào)
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"];

// 將當(dāng)前版本號(hào)存進(jìn)沙盒
[[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:@"CFBundleVersion"];
[[NSUserDefaults standardUserDefaults] synchronize]; //synchronize:同步 不可少這句!??!

// 從偏好設(shè)置里讀取版本號(hào)
NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:currentVersion];
cell.detailTextLabel.text = str;
讀取App版本號(hào).png

另外,APPStore中有一條明確規(guī)定,你的APP中緩存文件只能保存在沙盒路徑下Caches文件夾或Temp文件夾下,不然將會(huì)被拒。而Temp文件夾下內(nèi)容將會(huì)在APP退出時(shí)自動(dòng)清除,所以我們清除APP緩存主要是清除Caches文件夾下的內(nèi)容。

如果你想了解相關(guān)清理緩存 iOS利用SDWebImage實(shí)現(xiàn)緩存的計(jì)算與清理,請(qǐng)移步:http://www.itdecent.cn/p/e77add077477

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

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,641評(píng)論 19 139
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,628評(píng)論 30 472
  • 1、 沙盒概念基本介紹 iOS 應(yīng)用程序只能在該 app 的文件系統(tǒng)中讀取。這個(gè)默認(rèn)的 app 文件系統(tǒng)就是我們說(shuō)...
    Laughingg閱讀 2,940評(píng)論 2 10
  • 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件,這個(gè)獨(dú)立、封閉、安全的空間,叫做沙盒。每個(gè)...
    rockyMJ閱讀 5,650評(píng)論 0 1
  • 每個(gè)iOS 應(yīng)用都有自己的沙盒路徑,應(yīng)用沙盒就是文件系統(tǒng)目錄,與其他應(yīng)用的文件系統(tǒng)隔離,iOS應(yīng)用不允許訪問(wèn)其他應(yīng)...
    沃倫蓋茨閱讀 9,677評(píng)論 1 4

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