應(yīng)用沙盒結(jié)構(gòu)

  • 應(yīng)用程序包:(上圖中的Layer)包含了所有的資源文件和可執(zhí)行文件

  • Documents:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)會備份該目錄。例如,游戲應(yīng)用可將游戲存檔保存在該目錄

  • tmp:保存應(yīng)用運(yùn)行時(shí)所需的臨時(shí)數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用沒有運(yùn)行時(shí),系統(tǒng)也可能會清除該目錄下的文件。iTunes同步設(shè)備時(shí)不會備份該目錄

  • Library/Caches:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)不會備份該目錄。一般存儲體積大、不需要備份的非重要數(shù)據(jù)

  • Library/Preference:保存應(yīng)用的所有偏好設(shè)置,iOS的Settings(設(shè)置)應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息。iTunes同步設(shè)備時(shí)會備份該目錄

  • 應(yīng)用沙盒目錄的常見獲取方式

  • 沙盒根目錄:NSString *home = NSHomeDirectory();

  • Documents:(2種方式)

  • 利用沙盒根目錄拼接”Documents”字符串
    NSString *home = NSHomeDirectory();
    NSString *documents = [home stringByAppendingPathComponent:@"Documents"];
    // 不建議采用,因?yàn)樾掳姹镜牟僮飨到y(tǒng)可能會修改目錄名

  • 利用NSSearchPathForDirectoriesInDomains函數(shù)
    // NSUserDomainMask 代表從用戶文件夾下找
    // YES 代表展開路徑中的波浪字符“~”
    NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
    // 在iOS中,只有一個(gè)目錄跟傳入的參數(shù)匹配,所以這個(gè)集合里面只有一個(gè)元素
    NSString *documents = [array objectAtIndex:0];

  • tmp:NSString *tmp = NSTemporaryDirectory();

  • Library/Caches:(跟Documents類似的2種方法)
    利用沙盒根目錄拼接”Caches”字符串
    利用NSSearchPathForDirectoriesInDomains函數(shù)(將函數(shù)的第2個(gè)參數(shù)改為:NSCachesDirectory即可)

  • Library/Preference:通過NSUserDefaults類存取該目錄下的設(shè)置信息

  • 屬性列表
  • 屬性列表是一種XML格式的文件,拓展名為plist
  • 如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,就可以使用writeToFile:atomically:方法直接將對象寫到屬性列表文件中
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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