iOS開發之沙盒機制

沙盒:iOS系統爲每一個應用程序創建一個文件目錄,是一個的獨立,封閉,安全的空間, 一個沙盒就是一個文件目錄

沙盒規定了一個程序只能在自身的沙盒中進行操作,不能去訪問其他應用程序的沙盒(iOS8已經部分開放訪問)

沙盒的作用:用來存放非代碼文件(圖片, 音頻, 視頻, 屬性列表(plist), sqlite數據庫, 文本文件, 其他等等)

沙盒中常用的幾個路徑:

Document文件夾:用來保存應由程序運行時生成的需要持久化的數據, iTunes會自動備份該目錄(蘋果公司建議將程序中創建的和瀏覽過的程序存放在這裏,iTunes在備份和回覆時會自動包含此目錄)。

獲取方法: NSString *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];//文件路徑是數組,這裏取第一個元素

Library文件夾: 用來存儲程序的默認設置和其他狀態信息,iTunes也會自動備份該目錄。獲取方法: NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];

Library/Caches: 用來存放緩存文件,iTunes不會備份此目錄,此目錄下的文件不會在程序退出後刪除,一般存放體積比較大但又不太重要的文件。獲取方法: NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

Library/Preferences: 用來存儲用戶的偏好設置,iOS的setting(設置)會在這個目錄中查找應用程序的設置信息,iTunes會自動備份該目錄,通常這個文件夾都是由系統進行維護的,建議不要操作他。系統沒有直接獲取這個文件夾路徑的方法,需要先獲取Library路徑然後進行字符串拼接找到此路徑: NSString libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDoMainMask, YES)[0]; NSString preferencePath = [libraryPath stringByAppendingString:@“/Preferences”];

注意:不要直接寫偏好設置到這個文件夾,而是通過NSUserDefaults來進行偏好設置的保存和讀取。

tmp: 保存應用程序的臨時文件夾,使用完畢後,將相應的文件從這個目錄中刪除,如果空間不夠,系統也可能會刪除這個目錄下的文件,iTunes不會同步這個文件夾,在iPhone重啓的時候,該目錄下的文件會被刪除。這個路徑的獲取方法和其他的不同,它有自己方法:

NSString *tmpPath = NSTemporaryDirectory();

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