Post

Replies

Boosts

Views

Activity

Binding with optional Value causes runtime crash
I have a binding with optional String as a type and in the parent view I have if condition which checks whether it is has value or not. Depending on this condition I show or hide the child view. When I make name value nil the app is crashing, below you find code example. class Model: ObservableObject { @Published var name: String? = "name" func makeNameNil() { name = nil } } struct ParentView: View { @StateObject var viewModel = Model() var nameBinding: Binding<String?> { Binding { viewModel.name } set: { value in viewModel.name = value } } var body: some View { VStack(alignment: .leading, spacing: 8) { Text("Name is \(viewModel.name ?? "nil")") Button("Make name nil") { viewModel.makeNameNil() } if let name = Binding(nameBinding) { /* looks like */ ChildView(selectedName: name) /* this causes the crash*/ } } .padding() } } struct ChildView: View { @Binding var selectedName: String var body: some View { VStack(alignment: .leading, spacing: 8) { Text("Selected name: \(selectedName)") HStack { Text("Edit:") TextField("TF", text: $selectedName) } } } } Here is stack of the crash. Thread 1: EXC_BREAKPOINT (code=1, subcode=0x107e1745c) AG::Graph::UpdateStack::update() () AG::Graph::update_attribute(AG::data::ptr<AG::Node>, unsigned int) () AG::Subgraph::update(unsigned int) () Looks like a switfui bug for me, should I avoid using such constructions?
2
0
1k
May ’23