iOS程序運行沙盒的路徑詳解

//
//  main.m
//  iOS程序運行沙盒的路徑
//
/*
 1)沙盒的基本概念和作用
    每個ios應用都有自己的應用沙盒,應用沙盒就是文件系統目錄,與其他應用的文件系統隔 離,ios系統不允許訪問其他應用的應用沙盒。在iOS8中已經開放訪問(extension)。
 
 2)擴展閱讀:
    extension是iOS8新開放的一種對幾個固定系統區域的擴展機制,它可以在一定程度上彌補 iOS的沙盒機制對應用間通信的限制。
    extension的出現,爲用戶提供了在其它應用中使用我們應用提供的服務的便捷方式,比如用 戶可以在Today的widgets中查看應用展示的簡略信息,而不用再進到我們的應用中,這將是一種 全新的用戶體驗;但是,extension的出現可能會減少用戶啓動應用的次數,同時還會增大開發者 的工作量。
 
 
 3)應用沙盒一般包括以下幾個文件目錄:應用程序包、Documents、Libaray(下面有Caches和 Preferences目錄)、tmp。
    1  應用程序包:包含所有的資源文件和可執行文件。
    2  Documents:保存應用運行時生成的需要持久化的數據,iTunes會自動備份該目錄。蘋果建議將程 序中建立的或在程序中瀏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目 錄
    3  tmp:保存應用運行時所需的臨時數據,使用完畢後再將相應的文件從該目錄刪除。應用沒有運行 時,系統也有可能會清除該目錄下的文件,iTunes不會同步該目錄。iphone重啓時,該目錄下的 文件會丟失。
    4  Library:存儲程序的默認設置和其他狀態信息,iTunes會自動備份該目錄。
    5  Libaray/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除。一 般存放體積比較大,不是特別重要的資源。
    6  Libaray/Preferences:保存應用的所有偏好設置,ios的Settings(設置)應用會在該目錄中查找 應用的設置信息,iTunes會自動備份該目錄。
 
 注:第3)點應該要能完全記住
 */
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        // 獲取沙盒根目錄的方法,有以下幾種: ( 應該在iOS項目裏面獲取 )
       
        NSString *homeDirectory = NSHomeDirectory();
        NSLog(@"%@",homeDirectory);
        
        
        /**
         NSSearchPathForDirectoriesInDomains:獲得具體某一個文件夾的路徑
         NSDocumentDirectory: 要需找Document文件夾
         NSUserDomainMask: 在當前用戶的主目錄裏面來找
         YES: 是否獲取全路徑。NO會獲得相對路徑
         */
        // 第一步先用數組保存取得的路徑
        NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        // 將數組元素轉化爲字符串
        NSString *path = [arr lastObject];
        // 顯示字符串信息
        NSLog(@"arr = %@ path = %@", arr, path);

    
    
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章