我有一个像这样的深度嵌套的字典数组:
func markAllBooksAsUnread() {
for (cat, catArray) in bookage.setless {
for (gen, genArray) in catArray {
for (foc, focArray) in genArray {
for dict in focArray {
bookage.setless[cat]![gen]![foc]![dict]["read"] = "no"
}
}
}
}
}
这段代码在我看来是正确的,但产生了错误:
Cannot subscript a value of type Array<Dictionary<String, String>> with an index of type 'Dictionary<String, String>'
在 [dict] 中的 'd' 下加上胡萝卜。 bookage.setless 数组的结构是:
var setless = [String : Dictionary<String, Dictionary<String, Array<Dictionary<String, String>>>>]()
我做错了什么?
最佳答案
dict
是一个字典,你不能用它作为索引。试试这个:
for (cat, catArray) in bookage.setless {
for (gen, genArray) in catArray {
for (foc, focArray) in genArray {
for i in focArray.indices {
bookage.setless[cat]![gen]![foc]![i]["read"] = "no"
}
}
}
}
关于ios - 无法在深度嵌套的数据结构上下标错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33459586/