2017.5.14沙盒、簡單讀寫操作

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

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

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

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

//獲取document的路徑:

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

print(documents[0])

print("11"+NSHomeDirectory())

? ? ? library(包含兩個子目錄:Caches 和 Preferences。Caches用來存放用戶需要換成的文件。Preferences是APP的偏好設(shè)置,可以通過NSUserDefaults來讀取和設(shè)置。)(緩存文件,應(yī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(存儲臨時文件,應(yī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的沙盒實在用戶目錄下的資源庫里面,但是資源庫是隱藏文件夾。所以查看沙盒之前,現(xiàn)將隱藏文件夾顯示出來。

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

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


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

二、簡單讀寫操作:http://www.itdecent.cn/p/0471b2d0fe2c

String、Data、Array、Directory

FileManager :文件管理類(單例)

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

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

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

注意:單例在程序運行期間不會被釋放,一般用于資源共享

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

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

//3、刪除

//4、是否存在

FileHandle(文件句柄)

Write...文件追加

Read...讀取某一部分


3、復(fù)雜對象寫入:http://www.itdecent.cn/p/0471b2d0fe2c

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

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

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

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

//5、Acr對象encoding方法

//6、寫入data對象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容