Swift之?dāng)?shù)據(jù)管理(一)

1、獲取文件路徑

//1. Home目錄, 即沙盒目錄
var path = NSHomeDirectory()
print("Home path: \(path)")
    
//2. Documents目錄 .UserDomainMask -->搜索范圍限制在該應(yīng)用程序的沙盒內(nèi) true -->是否顯示完整路徑  first -->結(jié)果為數(shù)組,這里取第一個內(nèi)容
path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first!
print("Documents: \(path)")
    
//3. Library目錄
path = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true).first!
print("Library: \(path)")
    
//4. Caches目錄
path = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true).first!
print("Caches: \(path)")
    
//5. tmp目錄
path = NSTemporaryDirectory()
print("Tmp: \(path)")
  1. 目錄文件管理
//檢測目錄是否存在
path = "\(path)/Data"
let fileManager = NSFileManager.defaultManager()
let result = fileManager.fileExistsAtPath(path)
print(result)

//創(chuàng)建目錄
//withIntermediateDirectories 如果新文件夾路徑有多級則設(shè)為true
let fileManager = NSFileManager.defaultManager()
do {
    try fileManager.createDirectoryAtPath(path, withIntermediateDirectories: false, attributes: nil)
} catch {
    print("create directory failed")
}

//刪除目錄
let fileManager = NSFileManager.defaultManager()
do {
    try fileManager.removeItemAtPath(path)
} catch {
    print("delete directory failed")
}

//創(chuàng)建文件
fileManager.createFileAtPath(path, contents: nil, attributes: nil)
  1. 用戶首選項(與Android的shared preferences類似)
//獲取對象實例
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject("CrazyMse", forKey: "NAME")
userDefaults.setObject("Joker", forKey: "NAME1")
userDefaults.synchronize() //同步數(shù)據(jù)到本地

//獲取本地內(nèi)容
let name = userDefaults.objectForKey("NAME")
let name1 = userDefaults.objectForKey("NAME1")
print("\(name!)------\(name1!)")
  1. 屬性列表
lazy var documentsPath: String = {
    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    return paths.first!
}()

//數(shù)組操作
//構(gòu)造路徑
let namesPaths = "\(documentsPath)/names.plist"
print(namesPaths)
//名字的數(shù)組 注意:最好用NSArray,否則會出問題
let names: NSArray = ["aaa", "bbb", "ccc", "CrazyMouse"]
names.writeToFile(namesPaths, atomically: true)//atomically 為true時,寫入臨時文件,待寫完后無錯誤,才寫入到文件中
//讀取數(shù)據(jù)
let entries = NSArray(contentsOfFile: namesPaths)
print(entries!)
    
//字典操作
//構(gòu)造路徑
let studentsPath = "\(documentsPath)/students.plist"
//學(xué)生字典 注意:最好用NSDictionary,否則會出問題
let students: NSDictionary = ["sno": "1101", "name": "CrazyMouse", "score": 100]
students.writeToFile(studentsPath, atomically: true)
//讀取數(shù)據(jù)
let data = NSDictionary(contentsOfFile: studentsPath)
print(data!.objectForKey("name")!)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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