我認爲這可能是一個基本問題,但我很難在Swift中理解字典的概念。我試圖獲取基於XML的Web服務的內容,解析兩個特定的字段並將它們設置爲字符串(一個名爲「fileName」,一個名爲「fileType」),然後將這些字符串添加到字典中(讓我們調用字典「文件」)。我想不可避免地能夠在我的應用程序中稍後打印files.fileName!
或files.fileType!
以引用給定的實例。瞭解如何將解析數據添加到字典(斯威夫特)
這裏是我一起工作的代碼;
//MARK
func getData(theURL: String) {
//Define the passed string as a NSURL
let url = NSURL(string: theURL)
//Create a NSURL request to get the data from that URL
let request = NSURLRequest(URL: url!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 5.0)
//Begin the NSURL session
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
let xml = SWXMLHash.parse(data!)
//I think this is wrong
var files = [String]()
for elem in xml["XmlResponse"]["object"] {
let fileName: String? = elem.element?.attributes["name"]!
let fileType: String? = elem.element?.attributes["type"]!
//I also think this is wrong
let file = String(fileName: fileName, fileType: fileType)
self.files.append(file)
print(self.files)
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}
}).resume()
}
在前面的迭代中,我用var files = [FileData]()
,的FileData是我創建的用於保存的文件名和字符串的fileType一個自定義類。這是做到這一點的唯一方法嗎?我覺得我錯過了一個簡單的前提;我知道如何收集數據(並且XML解析的工作是),但我不太清楚如何將它添加到稍後可以調用的簡單字典中。
謝謝!