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

沙盒SandBox的結構

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

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

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

其中,UserName是指用戶在Mac系統中的用戶名。

點擊“前往”,就來到了模擬器目錄:

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

 

上圖中的目錄結構類似于實際的iOS設備中的目錄結構。

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

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

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

1、Documents:

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

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

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

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

2、Library:

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

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

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:

我們可以在這個目錄下存放臨時文件,當設備接到iTunes時,tmp中的數據會進行同步。我們的程序應當要負責刪除tmp目錄下的內容。

獲取tmp目錄:

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

  1. NSString *tempPath = NSTemporaryDirectory(); 

但是我發現獲得的卻不是程序的tmp目錄,而是:

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

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

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

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

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

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

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

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

在真機上,NSTemporaryDirectory對應的就是app目錄的tmp目錄。

責任編輯:閆佳明 來源: cocoachina
相關推薦

2015-08-24 13:46:17

2022-02-17 16:32:58

Android隱私沙盒隱私保護標準

2011-06-20 18:31:10

沙盒效應

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

卡巴斯基沙盒

2011-06-28 16:10:18

沙盒效應網站排名

2015-11-25 16:12:13

2017-10-23 14:08:37

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沙盒機制

2011-05-10 14:27:27

2024-01-16 07:46:11

2009-11-26 10:57:27

2013-11-14 14:02:57

2020-09-18 10:46:10

網絡攻擊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人日b视频 | 日韩在线观看中文字幕 | 成人午夜免费视频 | 一区二区三区四区在线视频 | 精品久久久久久红码专区 | 伊人中文字幕 | 粉嫩国产精品一区二区在线观看 | 九九99九九精彩46 | a在线视频 | 9色网站| 伊人网伊人 | 欧美精品1区2区3区 精品国产欧美一区二区 | 亚洲综合区 | 日韩欧美在线播放 | 日本午夜免费福利视频 | 久草在线在线精品观看 | 国产亚洲欧美另类一区二区三区 | 日日操操操 | a在线观看免费 | 日韩一区二区三区视频 | 日本视频在线 | 成人在线观看中文字幕 | 成人免费大片黄在线播放 | 激情av | 91看片网址| 国产日韩一区二区三区 | 黄色av网站在线观看 | 精品国产一区探花在线观看 | 99pao成人国产永久免费视频 | 81精品国产乱码久久久久久 | 欧美影院 | 做a网站 | 男女免费网站 | 国产成人免费视频网站视频社区 | 日日噜噜噜夜夜爽爽狠狠视频97 | 免费的网站www | 久久这里只有精品首页 | 一区在线观看视频 | 国产成人综合久久 | 欧美成人黄色小说 | 欧美激情五月 |