應用程式沙盒的概念

2021-07-05 22:00:33 字數 1779 閱讀 1040

1   ios應用程式沙盒概念

ios應用程式只能在為程式建立的檔案系統中讀取檔案,不可以去其它地方訪問,此區域被成為沙盒,所以所有的非**檔案都要儲存在此,例如影象,圖示,聲音,映像,屬性列表,文字檔案等。

每個應用程式都有自己的儲存空間

應用程式不能翻過自己的圍牆去訪問別的儲存空間的內容

應用程式請求的資料都要通過許可權檢測,假如不符合條件的話,不會被放行。

2   檢視應用程式的沙盒

方法二:在系統密令行視窗可以設定顯示隱藏檔案,然後在finder下直接開啟。設定檢視隱藏檔案的方法如下:開啟終端,輸入命名

3 目錄結構

預設情況下,每個沙盒含有3個資料夾:documents, library 和 tmp。因為應用的沙盒機制,應用只能在幾個目錄下讀寫檔案

documents:蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,及除了基於nsuserdefaults的首選項設定之外,應用程式的資料檔案都儲存在該目錄下.itunes備份和恢復的時候會包括此目錄

library:儲存程式的預設設定或其它狀態資訊;基於nsuserdefaults的受選項引數儲存在library/preferences目錄下.

library/caches:存放快取檔案,itunes不會備份此目錄,此目錄下檔案不會在應用退出刪除

tmp:提供乙個即時建立臨時檔案的地方。

itunes在與iphone同步時,備份所有的documents和library檔案。

iphone在重啟時,會丟棄所有的tmp檔案。

4 獲取應用程式沙盒目錄

5檔案儲存策略思考

當我們決定把檔案儲存在documents資料夾下是,需要思考乙個問題,應用儲存到底把資料儲存在單個檔案中還是多個檔案中?

通常來說,建議使用單個檔案儲存資料,這樣使用簡單.比如儲存一些基本資料,程式可以考慮將資料儲存到nsarray或者nsdictionary中,接下裡通過writetofile: atomically:方法將資料寫入單個檔案中.當應用程式啟動的時候,可呼叫nsarray的arraywithcontentsoffile:或者nsdictionary的dictionarywithcontentsoffile:方法獲取檔案中的資料,根據檔案的內容恢復程式的狀態.這種方法簡單:但是缺點在於,每次讀取檔案內容總是一次性載入全部檔案內容,這樣可能導致記憶體緊張,儲存檔案內容時只改動了很少的一部分內容,程式也將nsarray或者nsdictionary中所有的資料寫入檔案.

使用多檔案儲存資料是另一種持久化儲存方法,假如我們要編寫乙個處理電子郵件的引用,由於每份電子郵件的內容都可能比較大,而且電子郵件之間關聯性較小,因此可以使用多檔案儲存.使用多檔案儲存的優點和缺點:

優點:應用程式需要哪部分資料,就載入哪個檔案,從而避免一次性載入所有的持久化資料帶來的記憶體緊張,應用程式修改了哪部分資料,只要儲存對應的檔案即可,這樣可以避免儲存所有的持久化資料.

缺點:多檔案儲存資料必然程式設計相對複雜,可能需要額外的資料結構去管理持久化內容與儲存檔案之間的對應關係.

一般來說,如果應用程式需要儲存,讀取的資料量不大,則可以使用nsarray或者nsdictionary來儲存,讀取資料.當資料量較大時,使用sqlite3或者coredata.

應用程式沙盒

1,檔案儲存策略 1.1單個檔案永續性 1.2 多個檔案永續性 優勢 延遲載入使用者資料 方便釋放閒置的記憶體 缺點 增加了應用程式的複雜性 1.3持久儲存應用程式資料 獲取路徑 獲取應用程式沙盒document nsarray paths nssearchpathfordirectoriesind...

ios 應用程式沙盒

應用沙盒的檔案系統目錄 應用沙盒其實就是應用程式所在的那個資料夾,包含了所有的資源檔案和可執行檔案。documents 就是儲存應用執行時生成的需要持久化的資料,什麼是需要持久化的資料就是儲存到硬碟裡面的資料,下次我們開機還是可以看到的資料,itunes在同步裝置的時候回備份該目錄,比如說遊戲的存檔...

iOS學習之應用程式沙盒

每個ios應用都有自己的應用沙盒 應用沙盒就是檔案系統目錄 與其他檔案系統隔離 這點在ios8已經改變 沙盒目錄如下 應用程式包 上圖中的layer 包含了所有的資源檔案和可執行檔案 documents 儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲...