我想在 SwiftUI 的 View 结构的参数中添加一个"didSet"函数,但每次我尝试构建应用程序时,我都会收到"分段错误: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
与其在具有@State
属性包装器的变量上使用didSet
,不如拥有一个符合BindableObject
(Combine
的一部分(的视图模型,并在视图中使用@ObjectBinding
,以便在视图模型中的任何内容更新时,SwiftUI 将更新您的 UI
这是一个关于如何做到这一点的很好的教程...
https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-objectbinding-to-create-object-bindings