【发布时间】:2021-10-13 17:00:20
【问题描述】:
我在转换时遇到问题
for(key, value) in Array(self.categoriesList.subCategoryList).sorted(by: {$0.0 < $1.0}){
}
到
ForEach(){response in
}
原因是“SwiftUI”的“ViewBuilder”中不允许第一个 for 循环,所以我尝试了这个,但仍然没有运气。有什么指导吗?到目前为止,我已经尝试过了,但我得到了一个错误代码
在 'ForEach' 上引用初始化程序 'init(_:id:content:)' 要求 '[Int : [Int : String]]' 符合 'RandomAccessCollection'
我正在尝试 for 循环的字典就是这个。
self.categoriesList.subCategoryList = Dictionary<Int,Dictionary<Int,String>>()
ForEach (self.categoriesList.subCategoryList, id: \.self){subCategory in
}
【问题讨论】:
-
这不是我们在这里展示代码的方式。
-
您想从字典、值(内部字典)还是整个字典中显示什么?另外,如果这个字典来自 json 数据,那么使用 Codable 可能会更好
-
根据您对上述问题的回答,您或许可以这样做:
ForEach (self.categoriesList.subCategoryList.map { ($0, $1) }, id: \.1){ (key, value) in -
@jnpdx 你成功了!像魅力一样工作。我也将这种方法用于嵌套的 for 循环。太感谢了!我怎样才能批准您的回答作为我问题的解决方案?
-
@JuanColmenero 我已将其添加为实际答案。您可以使用绿色复选标记将其标记为正确。谢谢。
标签: arrays swift sorting dictionary swiftui