如何将 String? 类型的对象分配给 String 类型的变量?

问题描述

我想将字典的 value 元素分配给 String 变量。

在swiftUI 中,字典中的所有值元素都以String 形式返回?类型。

当一个字符串? type 分配给 String 变量,该 String 变量在 swiftUI 应用程序中显示为 Optional("theStringIamTryingToDisplay")。

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

解决方法

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

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

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

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

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

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

,

非常感谢,jnpdx:)

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

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

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

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

似乎因为 y 总是防止被默认的东西“??”分配“nil”,那么 y 不再显示为“可选”。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...