【问题标题】:How do you assign a String?-type object to a String-type variable?如何将 String?-type 对象分配给 String-type 变量?
【发布时间】:2021-08-27 21:12:54
【问题描述】:

我想将字典的值元素分配给字符串变量。

在 swiftUI 中,字典中的所有 value 元素都返回为 String?输入。

什么时候是字符串? type 分配给 String 变量,String 变量在 swiftUI 应用程序中显示为 Optional("theStringIamTryingToDisplay")。

如何去掉应用显示中的“可选”?

【问题讨论】:

    标签: swiftui swift-optionals


    【解决方案1】:

    非常感谢,jnpdx:)

    好的,经过大量研究可选项,似乎一种解决方案是:

    对于String变量"x"和"y",字典myDictionary=["a":"aaa", "b":"bbb", "c":"ccc"],赋值一个swiftUI字典值,这始终是可选的,使用默认值作为赋值语句的一部分的字符串变量将抑制“可选”显示。它看起来像:

    y = "(myDictionary[x] ?? "anyDefaultDummyTextHere")"

    我应该从 @jnpdx 的第二个答案中得到它,但是 Text() 对象让我感到困惑,因为我专注于“y =”赋值语句。

    似乎由于 y 总是阻止被默认值“??”分配为“nil”,因此 y 不再显示为“可选”。

    【讨论】:

      【解决方案2】:

      您必须首先确保该变量实际上不包含nil。您可以通过多种方式做到这一点——可能会很好阅读:

      一种方法是通过可选绑定:

      if let myVariable = myDictionary["key"] {
        Text(myVariable)
      }
      

      另一个是提供一个默认值:

      Text("My result: \(myDictionary["key"] ?? "default value")
      

      还有其他可能性,但这些以及上面的链接应该可以帮助您入门。

      【讨论】:

        猜你喜欢
        • 2022-08-04
        • 2012-04-04
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 2022-11-12
        • 2014-03-12
        • 1970-01-01
        • 2020-11-30
        相关资源
        最近更新 更多