Привязка с необязательным значением вызывает сбой времени выполненияIOS

Программируем под IOS
Ответить
Anonymous
 Привязка с необязательным значением вызывает сбой времени выполнения

Сообщение Anonymous »

У меня есть привязка с необязательной строкой в виде типа и в родительском представлении, которое у меня есть, если у меня есть условие, которое проверяет, имеет ли она значение или нет. В зависимости от этого состояния я показываю или скрываю представление ребенка. Когда я делаю значение имени NIL приложение сбивается, ниже вы найдете пример кода.

Код: Выделить всё

class Model: ObservableObject {

@Published var name: String? = "name"

func makeNameNil() {
name = nil
}

}

struct ParentView: View {

@StateObject var viewModel = Model()

var nameBinding: Binding {
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)
}
}
}
}
< /code>
Вот стек сбоя. < /p>
Thread 1: EXC_BREAKPOINT (code=1, subcode=0x107e1745c)

AG::Graph::UpdateStack::update() ()
AG::Graph::update_attribute(AG::data::ptr, unsigned int) ()
AG::Subgraph::update(unsigned int) ()
Как ошибка Switfui для меня, я должен избегать использования таких конструкций?

Подробнее здесь: https://stackoverflow.com/questions/762 ... time-crash
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»