2
我有不同的文本文件,其中每行包含字符串鍵=字符串值斯威夫特IOS - 讀key = value的文本文件導入的NSDictionary
我可以讀取文件到字符串(或者數組),去了但是,我想知道我是否錯過了一些內置或更簡單的「快速」方式(新到快速)
我找不到這個問題討論之前
我有不同的文本文件,其中每行包含字符串鍵=字符串值斯威夫特IOS - 讀key = value的文本文件導入的NSDictionary
我可以讀取文件到字符串(或者數組),去了但是,我想知道我是否錯過了一些內置或更簡單的「快速」方式(新到快速)
我找不到這個問題討論之前
核心概念依然依賴於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]
,遍歷每一行,把它分解並指定鍵值到字典中。
由於這是一個探索執行任務的「Swifty」方式的問題,我只是想我會提及您可以使用字符串的'characters'屬性並調用split,作爲使用componentsSeparatedByString的替代方法'fileContent.characters.split(「\ n」)。reduce ...'等等。你需要在閉包中構造新的String。如果不清楚,我會留下一個答案! – stefandouganhyde