ios沙箱模式開啟_iOS沙盒篇

iOS系統在安全性上的一大亮點就是沙盒。

每個iOS應用SDK都被限制在沙盒中,我們可以把沙盒當成一個設置了僅當前SDK可以訪問的文件夾,蘋果對沙盒有以下幾條限制:

應用程序可以在自己的沙盒中運行,但不能訪問任何其他應用程序的沙盒。

應用程序間不能共享數據。

禁止應用程序讀寫沙盒以外的文件夾。

沙盒根目錄中有四個文件夾:

AppName.app

Documents

Library

tmp

iTunes在與iPhone同步時,備份所有的Documents和Library文件。

iPhone在重啟時,丟棄所有的tmp文件。

一、以下從存放內容、是否會被iTunes同步兩個方面來分別描述沙盒中四個文件夾的功能情況:

1. AppName.app

①存放內容

這是應用程序的程序包目錄,包含了應用程序本身的數據、資源文件、可執行文件等等。程序啟動以后,會根據需要從該目錄中動態的加載代碼或者資源到內存(懶加載:lazy loading)。

注意:AppName.app目錄是只讀的。為了防止被篡改,應用在安裝的時候會將該目錄簽名。非越獄情況下,該目錄中的內容是無法更改的;如果更改了目錄內容,對應的簽名就會發生改變,會導致應用程序無法啟動。

②是否會被iTunes同步

2. Documents

①存放內容

我們可以將應用程序的數據文件保存在該目錄下。不過這些數據類型僅限于不可再生的數據,可再生的數據文件應該存放在Library/Cache目錄下

②是否會被iTunes同步

3. Documents/Inbox

①存放內容

該目錄用來保存由外部應用請求當前應用程序打開的文件。

比如:應用A向系統注冊了幾種可打開的文件格式,應用B中有一個A支持的格式的文件F,并申請調用應用A打開文件F。由于F當前是在應用B的沙盒中,我們知道,沙盒機制使不允許應用A訪問應用B沙盒中的文件,因此蘋果的解決方案是將文件F拷貝一份到應用A的Documents/Inbox目錄下,再讓應用A打開文件F。

②是否會被iTunes同步

4. Library

①存放內容

蘋果建議用來存放默認設置或者其他狀態信息。

②是否會被iTunes同步

是,但除了Caches子目錄

5. Library/Caches

①存放內容

主要是緩存文件,用戶使用過程中緩存都可以保存在這個目錄中。上面提到過,Documents目錄用于保存不可再生的文件,那么這個目錄就用于保存那些可再生的文件,比如網絡請求數據。鑒于此,應用程序通常還需要負責刪除這些文件。

②是否會被iTunes同步

6. Library/Preferences

①存放內容

應用程序的偏好設置文件。我們使用NSUserDefaults的設置數據都會保存到該目錄下的一個plist文件中。

②是否會被iTunes同步

7. tmp

①存放內容

主要存放各種臨時文件,保存應用再次啟動時不需要的文件。而且,當應用不再需要這些文件時應該主動將其刪除,因為該目錄下的東西隨時有可能被系統清理掉,目前已知的一種可能清理的原因是系統磁盤存儲空間不足的時候。

②是否會被iTunes同步

二、獲取沙盒路徑

1. 獲取沙盒主目錄路徑

NSString *homePath = NSHomeDirectory();

2. 獲取Documents路徑

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

3. 獲取Library路徑

NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];

4. 獲取Caches路徑

NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

5. 獲取tmp路徑

NSString *tmpDir = NSTemporaryDirectory();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531877.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531877.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531877.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言不定方程的二元一次,poj1061 - 同余方程,二元一次不定方程

以前不會解二元一次不定方程的時候不會做,現在會做了。#include #include using namespace std;typedef __int64 int64;void solveType1(int64 a, int64 b, int64 & x, int64 & y, int64 & d) {if (b 0) {x 1; y 0; d a;return;}int64 _x, _y, _d;s…

java中異常注意的細節1

/* public class Test{public static void main(String[] args){int i0;try{func();//區別就是該函數拋出的異常被封裝了,外界不知道到底會不會發生該異常System.out.println("i " i);//所以這句話是有機會執行的}catch(Exception e){System.out.printl…

append 后如何刪除_如何在STATA中合并數據文件呢?

?作者:江小白郵箱:jieresearch163.com?我們在使用stata進行數據分析時,可能涉及多個數據文檔的合并操作或者同時使用不同數據集中的多個變量,這都需要我們進行文檔間不同變量的歸并。例如,我們需要使用CFPS(中國家庭…

linux 內網怎么安裝git環境_linux 安裝go環境

官網下載安裝包The Go Programming Language?golang.google.cngo1.4.linux-amd64.tar.gz解壓:tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加環境變量:export PATH$PATH:/usr/local/go/bin安裝完成輸入go測試安裝成功,寫個簡單的代碼…

java中異常注意問題(發生在多態是的異常問題)

/* 異常的注意事項: 1,子類在覆蓋父類方法時,父類的方法如果拋出了異常,那么子類的方法只能拋出父類的異常或者該異常的子類。 2,如果父類拋出多個異常,那么子類只能拋出父類異常的子集。 簡單說&#xff1…

cups支持的打印機列表_Win10“Microsoft Print to PDF”虛擬打印機不見了,如何找回?...

MS酋長很早以前在介紹Windows10的新功能時,就提到過《Win10原生支持把文件轉換成PDF格式》,該功能實際上是基于“Microsoft Print to PDF”虛擬打印機來實現的。當你點擊打印時,在打印機列表中就可以看到“Microsoft Print to PDF”虛擬打印機…

循環隊列的進隊算法c語言,循環隊列的定義,入隊算法,出隊算法,遍歷算法,及其代碼實現-Go語言中文社區...

隊列 的定義:一種可以是實現“先進先出”的存儲結構。數據的進出類似于排隊購票。隊只允許隊尾一端(rear)添加,在另一端隊頭(front)刪除。隊有隊頭(front)和隊尾(rear)兩個指針。隊頭front指向第一個元素,隊尾rear指向無實際意義的元素&#…

java中paint方法和paintComponent方法的不同

/*1.由Component.java源代碼中可以看見其中的paint()方法體是空的,在Container中重寫了該方法,其子類Window等也重寫了該方法2.由JComponent.java源代碼中可以看見其中的paint()方法中調用paintComponent, paintChildren, paintBo…

java office文件加水印_文檔預覽加水印——或可一用的防泄密方式

給文件加水印是常見的一種宣示版權的方式。像Office、WPS都自帶加水印功能,能夠給文檔加上"保密"、"嚴禁復制"這樣的水印。在多可系統中,也有這么一個添加水印的功能。啟用該功能后,在使用HTML5預覽時,多可系…

android 獲取apk資源,android-apk-parser

APK解析庫用于讀取/解析 packageName。versionName。versionCode信息的簡單類,以及已經編譯的androidsdk文件中的更多內容。通過解壓 AndroidManifest.xml 文件并解碼編譯好的XML二進制文件來收集這里信息,就可以實現。我一直在用它來實現各種android工件…

apache license 2.0如何使用防止法律糾紛_go語言使用Swaggo詳細教程

相信很多程序猿和我一樣不喜歡寫API文檔。寫代碼多舒服,寫文檔不僅要花費大量的時間,有時候還不能做到面面具全。但API文檔是必不可少的,相信其重要性就不用我說了,一份含糊的文檔甚至能讓前后端人員打起來。 而今天這篇博客介紹的…

靜態代碼塊,構造代碼塊,局部代碼塊演示

public class Test{static int num;static int numObj;//記錄有多少個對象產生!static{//靜態代碼塊, 是用來給類進行初始化的!//num 10;num;num *12;//沒有進入靜態代碼塊之前,num的初始化值是0System.out.println(num);//main(…

android執行main函數,AndroidStudio執行main方法報錯

問題:有時在開發中想直接寫一個java文件來測試一些東西,但是AndroidStudio執行的時候會報錯。代碼信息:public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}報錯信息12:04:41:…

模擬java.util.Collection一些簡單的用法

/* 需求:模擬java.util.Collection一些簡單的用法!注意:java虛擬機中并沒有泛型類型的對象。泛型是通過編譯器執行一個被稱為類型擦除的前段轉換來實現的。 1)用泛型的原生類型替代泛型。 原生類型是泛型中去掉尖括號及其中的類型…

hive 導出json格式 文件_Hive 系列 之 基本操作合集

下面是本課程概覽:(1)hive系列之簡介,安裝,beeline和hiveserver2(2)hive系列之基本操作(3)hive系列之udf(4)hive系列之二級分區和動態分區&#x…

android開發自定義view倍絲曲線,從0到1Android自定義View(四)貝塞爾曲線

原標題:從0到1Android自定義View(四)貝塞爾曲線2017年安卓巴士全球開發者論壇-上海站作者本文由兩點水投稿,博客地址:http://www.apkbus.com/myspaceblog-911082.html前言扯來扯去,前面三篇自定義 View 文章,終于扯完了…

如何保證對象的唯一性

/* 如何保證對象的唯一性:1.不允許其他程序用new來創建該類對象。2.在該類創建一個本類實例。3.對外提供一個方法讓其他程序可以獲取該對象的引用。 */ public class Test{public static void main(String[] args){//Subject sub Subject.oSub;//這種方法不可控&am…

ios kvo 要引入_騰訊社招iOS面試記錄

畢業好幾年了,上周發送了簡歷給騰訊,參加了騰訊面試。具體部門這邊就不說了。這次面試還是收獲到了很多。一面電話面試:面試官主要是針對iOS相關的基礎問題。先簡單自我介紹一下自己對mrc和arc的理解談談對自動釋放池的理解自動釋放池在mrc和…

動態設置html字號,動態設置html的font-size值 (適配文字大小)

PC端(function () {function setRootFontSize() {let rem, rootWidth;let rootHtml document.documentElement;//限制展現頁面的最小寬度rootWidth rootHtml.clientWidth < 1366 ? 1366 : rootHtml.clientWidth;// 19.2 設計圖尺寸寬 / 100( 設計圖的rem 100 )rem roo…

一個小例子對多態簡單的理解

class Parent{int age;String name;public Parent(String name, int age){this.name name;this.age age;}public void writeWay(){System.out.println("毛筆!");}}class Child extends Parent{int age;String name;//這里只說為了說明一個問題&#xff0c;其實完全…