2017.5.14沙盒、簡(jiǎn)單讀寫操作

一、沙盒:每一個(gè)應(yīng)用程序都有一個(gè)沙盒,只能在自己的沙盒中進(jìn)行文件訪問,iOS8以后開放了部分文件

1、沙盒目錄結(jié)構(gòu):

NSSearchPathForDirectoriesInDomains(獲取)介紹:http://blog.csdn.net/xingxing513234072/article/details/24184917

? ? ? documents(用于存儲(chǔ)用戶數(shù)據(jù),iTunes備份和恢復(fù)的時(shí)候會(huì)包括此目錄,所以,蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下。)(數(shù)據(jù)持久化保存)

//獲取document的路徑:

? ? ? ?let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

print(documents[0])

print("11"+NSHomeDirectory())

? ? ? library(包含兩個(gè)子目錄:Caches 和 Preferences。Caches用來存放用戶需要換成的文件。Preferences是APP的偏好設(shè)置,可以通過NSUserDefaults來讀取和設(shè)置。)(緩存文件,應(yīng)用退出不會(huì)自動(dòng)刪除)

//獲取library的路徑:

let lib = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)

print("lib = " + lib[0])

let caches = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)

print("caches = " + caches[0])

//prefer 不可以直接獲取

let prefer = lib[0] + "/Preferences"

print("prefer = " + prefer)

? ? ? tmp(存儲(chǔ)臨時(shí)文件,應(yīng)用退出會(huì)自動(dòng)刪除)

//獲取temp目錄 獲取到沙盒根目錄(NSHomeDirectory) 再拼接temp目錄

let temp = NSHomeDirectory() + "/tmp"

print("tmp = " + temp)

2、打開沙盒模擬器的方法:

? ? ? 直接在Finder->前往->前往文件夾,輸入上面的內(nèi)容即可:/Users/140xiangwenjing/Library/Developer/CoreSimulator/Devices/27D1ABAB-8FD8-4AEB-ACF5-968100682C81/data/Containers/Data/Application/5767F33A-EF32-45EB-BBB1-20F27DD1AE63/tmp

通過Finder一步步查找

? ? 模擬器上的APP的沙盒實(shí)在用戶目錄下的資源庫里面,但是資源庫是隱藏文件夾。所以查看沙盒之前,現(xiàn)將隱藏文件夾顯示出來。

顯示隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隱藏隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false


注意:大文件不能在iTunes同步的文件夾中(上線被拒絕)

二、簡(jiǎn)單讀寫操作:http://www.lxweimin.com/p/0471b2d0fe2c

String、Data、Array、Directory

FileManager :文件管理類(單例)

//單例(創(chuàng)建對(duì)象文件是一樣的)

//獲取當(dāng)前應(yīng)用程序 UIApplication.shared.keyWindow(獲取主平面)? ? UserDefaults.standard? 單例在程序運(yùn)行期間不會(huì)被釋放

(encoding編碼格式:encoding:.utf8)

注意:?jiǎn)卫诔绦蜻\(yùn)行期間不會(huì)被釋放,一般用于資源共享

//1、創(chuàng)建文件夾

//2、移動(dòng)文件夾/重命名(判斷是湊存在文件夾在移動(dòng),先執(zhí)行4)

//3、刪除

//4、是否存在

FileHandle(文件句柄)

Write...文件追加

Read...讀取某一部分


3、復(fù)雜對(duì)象寫入:http://www.lxweimin.com/p/0471b2d0fe2c

//1、遵守NSCoding協(xié)議,實(shí)現(xiàn)兩個(gè)方法()

//2、現(xiàn)創(chuàng)建對(duì)象

//3、創(chuàng)建一個(gè)NSMutableData

//4、根據(jù)NSMutableData創(chuàng)建Acr對(duì)象(歸檔工具)

//5、Acr對(duì)象encoding方法

//6、寫入data對(duì)象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1、 沙盒概念基本介紹 iOS 應(yīng)用程序只能在該 app 的文件系統(tǒng)中讀取。這個(gè)默認(rèn)的 app 文件系統(tǒng)就是我們說...
    Laughingg閱讀 2,775評(píng)論 2 10
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,217評(píng)論 30 472
  • 提到數(shù)據(jù)持久化 我們必須得先了解IOS程序的沙盒機(jī)制(sandBox)。 1.IOS沙盒機(jī)制介紹 iOS應(yīng)用程...
    _Half______閱讀 12,618評(píng)論 4 24
  • iOS沙盒機(jī)制 沙盒機(jī)制 不好意思,我又一次來到了你們的世界,其實(shí)我是拒絕的,但是我的無法忍受內(nèi)心的躁動(dòng)!額我TM...
    iOSDevVicky閱讀 2,021評(píng)論 0 12
  • 前言:iOS的沙盒機(jī)制,應(yīng)用只能訪問自己應(yīng)用目錄下的文件。iOS不像android,沒有SD卡概念,不能直接訪問圖...
    ChinaSwift閱讀 2,235評(píng)論 1 12