Как исправить ошибку XCode "Ошибка сегментации: 11" после добавления didSet в @State var
Я хочу добавить функцию didSet к параметру структуры представления SwiftUI, но каждый раз, когда я пытаюсь создать приложение, я получаю ошибку "Ошибка сегментации: 11".
Я попытался переименовать параметр, но ничего не произошло. Я также пытался сделать его необязательным, но, поскольку это @State, он не работал. Что я могу сделать?
@State var text: String {
didSet {
print(oldValue, text)
}
}
2 ответа
Попробуйте добавить значение по умолчанию в вашу переменную, что необходимо при определении @State
вар.
@State var text: String = "" {
didSet {
print(oldValue, text)
}
}
У меня тоже есть эта проблема, похоже на ошибку компилятора или что-то. Я покопался и нашел ошибку, поднятую Apple, которую можно найти здесь https://bugs.swift.org/browse/SR-10918
Вместо того, чтобы использовать didSet
на переменную с @State
Оболочка свойства вы можете иметь модель представления, которая соответствует BindableObject
(часть Combine
) и использовать @ObjectBinding
по вашему мнению, поэтому, когда что-либо в вашей модели представления обновляется, SwiftUI обновит ваш пользовательский интерфейс
Вот хороший учебник о том, как это сделать...