【发布时间】:2021-05-03 11:32:12
【问题描述】:
这给了我以下错误:
无法强制解开非可选类型 'Binding
我不明白为什么我不能强制解开绑定?
struct Person {
var name: String
}
struct ContentView: View {
@State private var person: Person? = Person(name: "Peter")
var body: some View {
if person != nil {
TextField("", text: $person!.name)
}
}
}
【问题讨论】:
-
题外话,但您确定要将像 Person 这样的模型对象作为状态变量吗?
-
为什么
person是可选的? -
@JoakimDanielson 你是对的,我不会。我从我的代码中提取了这个以简化示例。
-
@vadian。提取代码以简化示例。但是假设您有一个可供选择的人员列表,一个选项是根本不选择一个人。在这种情况下, Person 将为零,所以我需要计算
-
我不明白。如果您有一个列表,则该对象是一个数组,而 none selected 是一个空数组。如果视图是列表中的行视图,则如果未选择该行,则不会显示该视图。我想说的是,与 Swift 语言不同,SwiftUI 严重依赖非可选项,您应该首先寻找一种避免可选项的设计。