成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

沙盒SandBox的結(jié)構(gòu)

移動開發(fā) iOS
有時沙盒也叫沙箱,英文sandbox。在計(jì)算機(jī)領(lǐng)域指一種虛擬技術(shù),且多用于計(jì)算機(jī)安全技術(shù)。其原理是通過重定向技術(shù),把程序生成和修改的文件定向到自身文件夾中。當(dāng)某個程序試圖發(fā)揮作用時,安全軟件可以先讓它在沙盒中運(yùn)行,如果含有惡意行為,則禁止程序的進(jìn)一步運(yùn)行,而這不會對系統(tǒng)造成任何危害。

在模擬器中運(yùn)行iOS程序,都會為該程序創(chuàng)建一個沙盒(SandBox)。首先聲明,我用的系統(tǒng)是Max OS X 10.7.3,編譯器是Xcode 4.3.2。想要找到沙盒目錄,先運(yùn)行Finder,然后在Finder的菜單欄找到前往—前往文件夾…,在打開的窗口輸入

  1. /Users/UserName/Library/Application Support/iPhone Simulator/ 

其中,UserName是指用戶在Mac系統(tǒng)中的用戶名。

點(diǎn)擊“前往”,就來到了模擬器目錄:

上圖中的5.0、5.1就是模擬器的版本。這里打開5.1:

 

上圖中的目錄結(jié)構(gòu)類似于實(shí)際的iOS設(shè)備中的目錄結(jié)構(gòu)。

Applications目錄就是安裝程序的地方。打開它:

可以看到有兩個文件夾,文件夾的名字很復(fù)雜。這兩個文件夾就可以看成是現(xiàn)在安裝在5.1模擬器中的兩個程序。它們的名稱是在Xcode中運(yùn)行是自動創(chuàng)建的,名稱是隨機(jī)產(chǎn)生的全局唯一標(biāo)識符。這里展開其中第二個文件夾。它就是上篇文章小例子運(yùn)行時產(chǎn)生的:

如上圖所示,程序中包含三個文件夾:Documents、Library和tmp。

1、Documents:

這個目錄用于存放程序中的數(shù)據(jù),除了那些基于NSUserDefaults的設(shè)置數(shù)據(jù)。

獲取程序的Documents目錄的代碼是:

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
  2. NSString *documentsDirectory = [paths objectAtIndex:0]; 

則documentsDirectory中存儲的就是Documents目錄的地址。

2、Library:

這個目錄包含兩個子目錄:Caches與Preferences。

Preferences這個目錄存放的是基于NSUserDefaults的設(shè)置數(shù)據(jù),例如上圖中可以看到一個plist文件,它就是我們上次進(jìn)行的設(shè)置項(xiàng),是Settings程序讀寫的。打開它,可以看到我們上次做的設(shè)置是保存在這個文件中的:

2.1 獲取Library目錄地址的代碼與Documents類似:

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
  2. NSString *libraryDirectory = [paths objectAtIndex:0]; 

2.2 獲取Caches目錄地址:

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
  2. NSString* cachesDirectory = [paths objectAtIndex:0]; 

3、tmp:

我們可以在這個目錄下存放臨時文件,當(dāng)設(shè)備接到iTunes時,tmp中的數(shù)據(jù)會進(jìn)行同步。我們的程序應(yīng)當(dāng)要負(fù)責(zé)刪除tmp目錄下的內(nèi)容。

獲取tmp目錄:

我看很多資料上寫的獲取tmp目錄的方法是:

  1. NSString *tempPath = NSTemporaryDirectory(); 

但是我發(fā)現(xiàn)獲得的卻不是程序的tmp目錄,而是:

  1. /var/folders/tp/pl9mdxtx199bs8_k29n89ff80000gn/T/ 

貌似也沒有一個像NSLibraryDirectory那樣的參數(shù)可以直接用來獲取這個目錄。

不過,如果我們可以獲得這個程序的根目錄,就可以獲取tmp目錄了:

  1. //獲取程序的根目錄 
  2. NSString *homeDirectory = NSHomeDirectory(); 
  3. //獲取tmp目錄的地址 
  4. NSString *tmpDirectory = [homeDirectory stringByAppendingPathComponent:@"tmp"]; 

tmpDirectory中存儲的就是本程序的tmp目錄。

我使用FileManager向其中創(chuàng)建子目錄和文件時都可以執(zhí)行,不過我有個程序試圖用FTP向其中下載文件,卻出現(xiàn)了文件寫入錯誤。

獲取了上述目錄地址后,想要獲得其中的文件或者子目錄,只要:

  1. NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"filename.txt"]; 

在真機(jī)上,NSTemporaryDirectory對應(yīng)的就是app目錄的tmp目錄。

責(zé)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2015-08-24 13:46:17

2022-02-17 16:32:58

Android隱私沙盒隱私保護(hù)標(biāo)準(zhǔn)

2011-06-20 18:31:10

沙盒效應(yīng)

2018-01-02 15:34:47

2023-07-09 00:32:12

2023-04-28 17:53:09

Kubernetes沙盒Signadot

2009-07-24 20:08:06

2011-06-30 15:42:49

卡巴斯基沙盒

2017-10-23 14:08:37

2015-11-25 16:12:13

2011-06-28 16:10:18

沙盒效應(yīng)網(wǎng)站排名

2014-07-15 10:26:55

2009-12-04 10:20:53

2013-05-30 09:41:16

2015-03-09 09:57:16

iOS沙盒機(jī)制

2009-11-26 10:57:27

2013-11-14 14:02:57

2011-05-10 14:27:27

2024-01-16 07:46:11

2020-09-18 10:46:10

網(wǎng)絡(luò)攻擊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一级黄色短片 | 91精品国产色综合久久 | 青青草网站在线观看 | 999久久久久久久久6666 | 在线一区观看 | www在线视频 | 欧洲一区在线观看 | 日韩精品一区二区三区中文字幕 | 看亚洲a级一级毛片 | 成人在线观看免费 | 国产精品自拍av | 日韩av电影在线观看 | 9色网站 | 国产精品一码二码三码在线 | 91一区二区在线观看 | 成人av电影在线观看 | 亚洲欧洲精品成人久久奇米网 | 99精品视频免费观看 | 欧美亚洲免费 | 成人免费看片又大又黄 | 色片在线观看 | 国产高清视频一区二区 | 精品一区二区三区中文字幕 | 久草在线青青草 | 亚洲国产精品成人综合久久久 | 一级毛片大全免费播放 | 九九久久国产精品 | 欧美一区二区三区在线视频 | 国产一区二 | 欧美一级网站 | 日韩高清国产一区在线 | 青春草国产 | 国产精品日韩欧美一区二区三区 | 国产a级黄色录像 | 日韩在线视频网址 | 中文字幕在线观看国产 | 精品成人一区 | 色综合久久天天综合网 | 免费看啪啪网站 | 国产一区免费视频 | 成人妇女免费播放久久久 |