如何在 SwiftUI 中使用字典创建一个数组,然后调用它们?
Posted
技术标签:
【中文标题】如何在 SwiftUI 中使用字典创建一个数组,然后调用它们?【英文标题】:How can I make an Array with Dictionaris in SwiftUI, and then call them? 【发布时间】:2021-10-22 14:52:58 【问题描述】:这里的问题很简单/很难。所以我想在一个数组中有一个字典标题列表,然后使用该数组调用一个随机字典
在文本字段中我想要 dic1 "A" ("first")
我怎样才能得到这个?
let dic1 = [
"A" : "first",
"B" : "second"]
let dic2 = [
"A" : "one",
"B" : "two"
]
var dicArray = ["dic1", "dic2"]
text("\(dicArray[0])")
【问题讨论】:
去掉双引号:let dicArray = [dic1, dic2]
谢谢,但我如何获得值“A”?我可以“打印(dicArray [0])”并得到[“B”:“第二”,“A”:“第一”],但我只想要“第一”
dicArray[0]["A"]
(A
是键,值为first
)。使用自定义结构会更舒服。
谢谢!寻求帮助!现在工作
【参考方案1】:
除了在实例化 dicArray 时删除引号之外,您还需要在 Text
中做更多的工作。你实例化dicArray
的方式,你把它变成了[String]
,而不是[[String:String]]
。完整的视图是:
struct DictView: View
let dic1 = [
"A" : "first",
"B" : "second"]
let dic2 = [
"A" : "one",
"B" : "two"
]
var dicArray: [[String:String]]
init()
dicArray = [dic1, dic2]
var body: some View
Text("\(dicArray[0]["A"] ?? "")")
请记住,因为它是一个字典,所以不能保证“A”有一个 key:value,所以你也必须处理可选的。
【讨论】:
谢谢!看起来它现在在操场上工作,将尝试将其添加到我的应用程序中:D 正如@vadian 暗示的那样,这确实不是推荐的方法。您应该将字典作为单独的类型,然后让所有变量都具有相同的类型。它使它更清洁。请记住,Dict
已经是一个集合。本质上,您正在制作一个集合的集合。
是的,你的方法很完美!以上是关于如何在 SwiftUI 中使用字典创建一个数组,然后调用它们?的主要内容,如果未能解决你的问题,请参考以下文章
[SwiftUI]:ForEach 不适用于字典数组、带数组的字典