我有一个简单的函数,它可以根据最后一个函数编译另外两个字典。
编译器没有显示错误,但执行后resultDict
为空。在调试中,所有变量counter
,type.1
和tempDict
都有正确的非零值。
func compileBaseFromCSV(original: [Int:[String]], headers: [Int:String]) -> [Int:[String:[String]]] {
var resultDict = [Int:[String:[String]]]()
var tempDict = [String]()
var counter = 0
for type in headers {
for object in original {
tempDict.append(object.1[type.0])
}
resultDict[counter]?[type.1] = tempDict
counter += 1
}
print(resultDict)
return resultDict
}
这个密码怎么了?谢谢!
最佳答案
首先,您从未设置过resultDict[counter]
,您需要如下内容:
if resultDict[counter] == nil {
resultDict[counter] = [:]
}
在将价值观融入其中之前。
但代码中似乎还有一些问题(例如,tempDict是否应该重置?)。使用调试器单步执行代码,查看值并检查它们如何更改(以及是否符合您的要求)。
关于swift - 在Swift中填充字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38457098/