如何解决如何将 String? 类型的对象分配给 String 类型的变量?
我想将字典的 value 元素分配给 String 变量。
在swiftUI 中,字典中的所有值元素都以String 形式返回?类型。
当一个字符串? type 分配给 String 变量,该 String 变量在 swiftUI 应用程序中显示为 Optional("theStringIamTryingToDisplay")。
如何去掉应用显示中的“可选”?
解决方法
您必须首先确保变量实际上不包含 nil
。您可以通过多种方式做到这一点 - 可能会很好阅读:
- Swift: Testing optionals for nil
- https://www.hackingwithswift.com/articles/136/the-complete-guide-to-optionals-in-swift
- https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
一种方法是通过可选绑定:
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 不再显示为“可选”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。