1、iOS沙箱機制
iOS應用程式只能在為該改程式建立的檔案系統中讀取檔案,不可以去其它地方訪問,此地區被成為沙箱,所以所有的非代碼檔案都要儲存在此,例像,表徵圖,聲音,映像,屬性列表,文字檔等。
1.1、每個應用程式都有自己的儲存空間
1.2、應用程式不能翻過自己的圍牆去訪問別的儲存空間的內容
1.3、應用程式請求的資料都要通過許可權檢測,假如不合格話,不會被允許存取。
通過這張圖只能從表層上理解sandbox是一種安全體系,應用程式的所有操作都要通過這個體系來執行,其中核心內容是:sandbox對應用程式執行各種操作的許可權限制。
2、開啟模擬器沙箱目錄
下面看看模擬器的沙箱檔案夾在mac電腦上的什麼位置。
檔案都在個人使用者名稱檔案夾下的一個隱藏檔案夾裡,中文叫資產庫,他的目錄其實是Library。
2.1 方法1、可以設定顯示隱藏檔案,然後在Finder下直接開啟。設定查看隱藏檔案的方法如下:開啟終端,輸入命名
顯示Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
輸完單擊Enter鍵,退出終端,重新啟動Finder就可以了
重啟Finder:按一下滑鼠視窗左上方的蘋果標誌-->強制退出-->Finder-->
現在能看到資產庫檔案夾了。
開啟資產庫後找到/Application Support/iPhone Simulator/檔案夾。這裡面就是模擬器的各個程式的沙箱目錄了。
2.2 方法2、這種方法更方便,在Finder上點->前往->前往檔案夾,輸入/Users/username/Library/Application Support/iPhone Simulator/ 前往。
username這裡寫你的使用者名稱。
3、目錄結構
預設情況下,每個沙箱含有3個檔案夾:Documents, Library 和 tmp。因為應用的沙箱機制,應用只能在幾個目錄下讀寫檔案
Documents:蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,iTunes備份和恢複的時候會包括此目錄
Library:儲存程式的預設設定或其它狀態資訊;
Library/Caches:存放快取檔案,iTunes不會備份此目錄,此目錄下檔案不會在應用退出刪除
tmp:提供一個即時建立臨時檔案的地方。
iTunes在與iPhone同步時,備份所有的Documents和Library檔案。
iPhone在重啟時,會丟棄所有的tmp檔案。
我們建立一個IosSandbox的項目來展開沙箱和檔案讀寫等操作的練習。
建立後找到模擬器上對應的目錄,
這是目錄全展開了。
這是上面提到的三個目錄 :Documents、Library、 tmp
下篇介紹目錄路徑擷取和檔案操作
例子代碼:https://github.com/schelling/YcDemo
著作權聲明:本文由http://blog.csdn.net/totogo2010/原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝