我想将“didSet”函数添加到 SwiftUI 的 View 结构的参数中,但每次我尝试构建应用程序时都会收到“Segmentation fault: 11”错误。
我试图重命名参数,但什么也没发生。我也尝试将其设为可选,但因为它是 @State 它没有用。我能做些什么?
@State var text: String {
didSet {
print(oldValue, text)
}
}
尝试为您的 var 添加一个默认值,这在定义@State
var 时是必需的。
@State var text: String = "" {
didSet {
print(oldValue, text)
}
}
我也有这个问题,好像是编译器错误之类的。我做了一些挖掘,发现了一个由 Apple 提出的错误,可以在这里找到https://bugs.swift.org/browse/SR-10918
除了didSet
在带有@State
属性包装器的变量上使用之外,您还可以拥有一个符合BindableObject
(部分Combine
)的视图模型并@ObjectBinding
在您的视图中使用,因此当您的视图模型中的任何内容更新时,SwiftUI 将更新您的 UI
这是一个很好的教程,关于如何做到这一点......