如何将 Xcode 错误"Segmentation fault: 11"添加到 didSet 到@State变量后修复



我想在 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

相关内容

  • 没有找到相关文章

最新更新