【问题标题】:How can I make an Array with Dictionaris in SwiftUI, and then call them?如何在 SwiftUI 中使用字典创建一个数组,然后调用它们?
【发布时间】: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)。使用自定义结构会更舒服。
  • 谢谢!寻求帮助!现在工作

标签: arrays dictionary swiftui


【解决方案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 已经是一个集合。本质上,您正在制作一个集合的集合。
  • 是的,你的方法很完美!
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
相关资源
最近更新 更多