日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios沙箱模式开启_iOS沙盒篇

發(fā)布時(shí)間:2025/3/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios沙箱模式开启_iOS沙盒篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

iOS系統(tǒng)在安全性上的一大亮點(diǎn)就是沙盒。

每個(gè)iOS應(yīng)用SDK都被限制在沙盒中,我們可以把沙盒當(dāng)成一個(gè)設(shè)置了僅當(dāng)前SDK可以訪問的文件夾,蘋果對(duì)沙盒有以下幾條限制:

應(yīng)用程序可以在自己的沙盒中運(yùn)行,但不能訪問任何其他應(yīng)用程序的沙盒。

應(yīng)用程序間不能共享數(shù)據(jù)。

禁止應(yīng)用程序讀寫沙盒以外的文件夾。

沙盒根目錄中有四個(gè)文件夾:

AppName.app

Documents

Library

tmp

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

iPhone在重啟時(shí),丟棄所有的tmp文件。

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

1. AppName.app

①存放內(nèi)容

這是應(yīng)用程序的程序包目錄,包含了應(yīng)用程序本身的數(shù)據(jù)、資源文件、可執(zhí)行文件等等。程序啟動(dòng)以后,會(huì)根據(jù)需要從該目錄中動(dòng)態(tài)的加載代碼或者資源到內(nèi)存(懶加載:lazy loading)。

注意:AppName.app目錄是只讀的。為了防止被篡改,應(yīng)用在安裝的時(shí)候會(huì)將該目錄簽名。非越獄情況下,該目錄中的內(nèi)容是無法更改的;如果更改了目錄內(nèi)容,對(duì)應(yīng)的簽名就會(huì)發(fā)生改變,會(huì)導(dǎo)致應(yīng)用程序無法啟動(dòng)。

②是否會(huì)被iTunes同步

2. Documents

①存放內(nèi)容

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

②是否會(huì)被iTunes同步

3. Documents/Inbox

①存放內(nèi)容

該目錄用來保存由外部應(yīng)用請(qǐng)求當(dāng)前應(yīng)用程序打開的文件。

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

②是否會(huì)被iTunes同步

4. Library

①存放內(nèi)容

蘋果建議用來存放默認(rèn)設(shè)置或者其他狀態(tài)信息。

②是否會(huì)被iTunes同步

是,但除了Caches子目錄

5. Library/Caches

①存放內(nèi)容

主要是緩存文件,用戶使用過程中緩存都可以保存在這個(gè)目錄中。上面提到過,Documents目錄用于保存不可再生的文件,那么這個(gè)目錄就用于保存那些可再生的文件,比如網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)。鑒于此,應(yīng)用程序通常還需要負(fù)責(zé)刪除這些文件。

②是否會(huì)被iTunes同步

6. Library/Preferences

①存放內(nèi)容

應(yīng)用程序的偏好設(shè)置文件。我們使用NSUserDefaults的設(shè)置數(shù)據(jù)都會(huì)保存到該目錄下的一個(gè)plist文件中。

②是否會(huì)被iTunes同步

7. tmp

①存放內(nèi)容

主要存放各種臨時(shí)文件,保存應(yīng)用再次啟動(dòng)時(shí)不需要的文件。而且,當(dāng)應(yīng)用不再需要這些文件時(shí)應(yīng)該主動(dòng)將其刪除,因?yàn)樵撃夸浵碌臇|西隨時(shí)有可能被系統(tǒng)清理掉,目前已知的一種可能清理的原因是系統(tǒng)磁盤存儲(chǔ)空間不足的時(shí)候。

②是否會(huì)被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();

總結(jié)

以上是生活随笔為你收集整理的ios沙箱模式开启_iOS沙盒篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。