2016-01-05 39 views

回答

1

核心概念依然依賴於componentsSeparatedByString,但通過使用更高階的函數可以使其看起來更「Swifty」,如reduce

let fileContent = try! NSString(contentsOfFile: "/path/to/file.txt", encoding: NSUTF8StringEncoding) 

let result = fileContent.componentsSeparatedByString("\n") 
       .reduce([String: String]()) { (var dict, line) in 
        let components = line.componentsSeparatedByString("=") 
        dict[components[0]] = components[1] 
        return dict 
       } 

它的作用是:通過分割線文件的內容,開始與空[String: String],遍歷每一行,把它分解並指定鍵值到字典中。

+0

由於這是一個探索執行任務的「Swifty」方式的問題,我只是想我會提及您可以使用字符串的'characters'屬性並調用split,作爲使用componentsSeparatedByString的替代方法'fileContent.characters.split(「\ n」)。reduce ...'等等。你需要在閉包中構造新的String。如果不清楚,我會留下一個答案! – stefandouganhyde