国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

教你簡單掌握iOS中沙盒的使用說明

2020-02-19 15:51:55
字體:
來源:轉載
供稿:網友

iOS中的沙盒機制是一個安全系統,它規定應用程序只能讀取為應用程序創建的文件夾中的文件,而不能訪問其他地方的內容,那么教你簡單掌握iOS中沙盒的使用說明大家都了解嗎?今天就讓武林技術頻道小編帶你一起來了解一下吧!

一、iOS沙盒機制

iOS的應用只能訪問為該應用創建的區域,不可訪問其他區域,應用的其他非代碼文件都存在此目錄下,包括圖片,屬性文件plist,bundle,nib文件等,這塊區域稱之為沙盒(sandBox)。

每個應用都有屬于自己的存儲空間,即沙盒。
應用只能訪問自己的沙盒,不可訪問其他區域。
如果應用需要進行文件操作,則必須將文件存放在沙盒中,尤其是數據庫文件,在電腦上操作時,可以去訪問,但是如果要裝在真機上可以使用,必須將數據庫文件拷貝至沙盒中。
二、打開沙盒路徑

1、如果不知道沙盒路徑,可以在自己的應用中打印其路徑。

?

復制代碼 代碼如下:

?

NSLog(@"沙盒路徑:%@",NSHomeDirectory());

?


會得到打印結果*為字母或數字,即為沙盒的路徑

?

?

復制代碼 代碼如下:

?

/Users/apple/Library/Application Support/iPhone Simulator/6.1/Applications/******-****-****-****-************

?

?

打開Finder,選擇前往-前往文件夾(或選擇快捷鍵command+shift+G)輸入打印出來的路徑即可

2、打開Finder,選擇前往并按住option鍵,進入資源庫

201612592225383.png (219×421)

選擇Application Support-iPhone Simulator-選擇模擬器版本,即可看到各個應用的沙盒目錄。

201612592251076.jpg (823×432)

選中其中一個目錄,即可看到程序的名稱的App文件。

201612592313546.png (820×340)

三、目錄結構

沙盒默認情況下有三個目錄文件夾documents,Library,tmp及應用的App文件,只可在相應的文件夾中進行操作

documents:一般用來存放應用中建立的文件,如數據庫文件,或程序中瀏覽到的文件數據。如果進行備份會將此文件夾中的文件包括其中;
Library:存儲應用的默認設置及狀態信息;
Library/cache:用來存放緩存文件,此文件夾下數據在應用退出時不會刪除。備份時不會包括此文件夾;
tmp:存放即時穿件的臨時文件
帶圖標的App文件:

選中后顯示包內容,即可看到存儲的圖標,nib文件,屬性列表等

201612592333311.png (409×175)

?

四、在沙盒中寫文件

在沙盒目錄的Documents文件夾下添加一個plist文件,添加圖片等方法相同

復制代碼 代碼如下:

// 獲取Documents文件夾目錄
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
?
// 設定plist的路徑
?[rootPath stringByAppendingPathComponent:@"new.plist"];
?
// 然后在plist中寫入內容
NSString *error;
// 序列化一個值“OK”
id plist = [NSPropertyListSerialization dataFromPropertyList:@"OK" format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
?
if(plist) {
??????? NSLog(@"No error creating XML data.");
??????? [plist writeToFile:plistPath atomically:YES];
??? }
??? else {
??????? NSLog(@"%@",error);
??????? [error release];
??? }


運行后在Documents文件夾下將看到一個new.plist文件

?

?

?

201612592352139.png (411×36)

文件中有一個值OK,也可添加數組,字典等相關類型的內容,只需將上文中的“OK”換成一個(id)類型的值即可

201612592407015.png (601×116)

五、拷貝文件到沙盒目錄下

下面拷貝一個public.xml文件至document路徑下,也可拷貝其他文件,只需將文件名和類型對應即可,尤其是database文件,一定要拷貝至沙盒才能使用。此文件不能是電腦中的文件,必須加入工程的Bundle中

復制代碼 代碼如下:

// 獲取Documents路徑
??? NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject];
?
??? // 設定要拷貝文件的路徑及名稱
??? NSString *xmlSandBoxPath = [documentsPath stringByAppendingPathComponent:@"public.xml"];
?
??? NSFileManager *fileManager = [NSFileManager defaultManager];
?
??? // 判斷文件是否已經存在
??? BOOL isExisting = [fileManager fileExistsAtPath:xmlSandBoxPath];
?
??? if (!isExisting) {
?
??????? // 本地無此文件,則將此文件拷貝到本地目錄。
??????? NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:@"public" ofType:@"xml"];
??????? NSError *err;
??????? // 將Bundle中的文件拷貝至沙盒目錄下
??????? [fileManager copyItemAtPath:xmlFilePath toPath:xmlSandBoxPath error:&err];
??? }


操作之后,Documents路徑下就有這個文件了

?

?

?

201612592428430.png (413×45)

上文是武林技術頻道小編為大家搜集到的相關介紹,希望對你了解教你簡單掌握iOS中沙盒的使用說明有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴川市| 沂水县| 峨边| 许昌市| 刚察县| 华坪县| 饶阳县| 望江县| 济宁市| 灵宝市| 海安县| 方正县| 闵行区| 金坛市| 象州县| 荥阳市| 白沙| 吉林市| 钦州市| 汉阴县| 潢川县| 麻城市| 曲靖市| 庄河市| 张家港市| 进贤县| 郯城县| 鹿邑县| 突泉县| 中宁县| 金沙县| 宾阳县| 财经| 芦溪县| 乡城县| 扎赉特旗| 科技| 昆明市| 芦溪县| 克什克腾旗| 灵山县|