2015-09-08 48 views
2

我正在學習斯威夫特。我已經創建了一本詞典:堅持字典文件並將其讀回

var myDict = Dictionary<String, String>() 
myDict["AAA"] = "aaa" 
myDict["BBB"] = "bbb" 

現在我想把這個字典保存到一個文件中。我得到下一個文件,文件路徑:

let docDir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last as? String 

let filePath = docDir.stringByAppendingPathComponent("MyFile.txt") 

直到這裏,我不知道該怎麼myDict存儲到文件中。還有如何從文件中讀回myDict。有人能請指導我嗎?

回答

0

可以使用的NSMutableDictionary

private var myDict: NSMutableDictionary! 

用於寫入用戶的默認值:

let def:NSUserDefaults = NSUserDefaults.standardUserDefaults(); 
    def.setObject(myDict, forKey: "YOUR_KEY"); 
    def.synchronize(); 

對於寫入文件:

var text:String = "" 
for (key, value) in myDict { 
    text += "\(key as! String)=\(value as! String)\n" 
} 

do { 
    try text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding) 
} 
catch {/* error handling here */} 

對於閱讀:

let def:NSUserDefaults = NSUserDefaults.standardUserDefaults(); 
    let ur:NSDictionary? = def.objectForKey("YOUR_KEY") as? NSDictionary; 
    if(ur == nil) { 
     myDict = NSMutableDictionary(); 
     myDict.setValue("aaa", forKey:"AAA"); 
     myDict.setValue("bbb", forKey:"BBB"); 
    } 
    else{ 
     myDict = NSMutableDictionary(dictionary: ur!) 
    } 
+0

如何在swift中創建一個空的'NSMutableDictionary'?我嘗試了'var myDict:NSMutableDictionary = [String:String]()'但是我得到錯誤'[String:String]不能轉換爲NSMutableDictionary' – user842225

+0

此外,我想寫字典到一個文件,我不想要設置爲NSUserDefaults – user842225

+0

要將文本寫入文件,可以使用鏈接[link](http://stackoverflow.com/questions/24097826)。在編寫之前,您必須使用鍵值對來格式化文本,並解析鍵值對以供閱讀。創建實例使用var myDict:NSMutableDictionary = NSMutableDictionary(); – Ivan