gpt4 book ai didi

swift - 了解如何将解析的数据添加到字典中 (Swift)

转载 作者:行者123 更新时间:2023-11-30 14:08:51 25 4
gpt4 key购买 nike

我认为这可能是一个基本问题,但我很难理解 Swift 中字典的概念。我试图获取基于 XML 的 Web 服务的内容,解析两个特定字段并将它们设置为字符串(一个称为“fileName”,一个称为“fileType”),然后将这些字符串添加到字典中(让我们调用字典"file")。我希望稍后能够在我的应用程序中打印 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 是我创建的用于保存 fileName 和 fileType 字符串的自定义类。这是唯一的方法吗?我觉得我好像缺少一个简单的前提;我知道如何收集数据(并且 XML 解析正在工作),但我不太清楚如何将其添加到稍后可以调用的简单字典中。

谢谢!

最佳答案

您使用 var files = [String]() 创建的是一个数组,而不是一个字典。要在 Swift 中获得您想要的内容,您需要创建一个字典,然后使用下标语法添加键值对:

var files = [String: String]()
...
files["fileName"] = fileName
files["fileType"] = fileType

要访问字典,您可以使用相同的下标语法:

if let fileName = files["fileName"] {
...
}

关于swift - 了解如何将解析的数据添加到字典中 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com