gpt4 book ai didi

swift - 如果变量不为零,如何在 swift UI 中显示 TextView ?

转载 作者:行者123 更新时间:2023-12-05 03:53:23 25 4
gpt4 key购买 nike

这基本上是我的代码:

var myString: String?

var body: some View {
NavigationView {
if myString != nil {
CustomView(text: myString ?? "")
}
}
}

如果我尝试不添加 ? "" 部分,它不起作用,说 可选类型 'String?' 的值?必须解包为“String”类型的值。如果我按上面所示添加它,它似乎可以工作,但如果永远不会出现这种情况,为什么我需要有一个默认的空字符串值呢? (因为它只会在 myString 不为 nil 的情况下到达该代码)有没有办法让这段代码更简洁?

最佳答案

您需要使用可选绑定(bind)来解包安全的可选变量。然而,简单地在 body 中使用它会导致编译器错误,因为并非所有控制流(包括 if let)都允许在 body 中 View ,因此您需要将其包装在另一个计算属性中。

struct MyView: View {

var myString: String?

var body: some View {
NavigationView {
innerView
}
}

var innerView: some View {
if let myString = myString {
return AnyView(CustomView(text: myString))
} else {
return AnyView(EmptyView())
}
}
}

或者您可以使用 Optional.map 简化它。

struct MyView: View {
var myString: String?

var body: some View {
NavigationView {
myString.map { CustomView(text: $0) }
}
}
}

关于swift - 如果变量不为零,如何在 swift UI 中显示 TextView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com