#swift
Вопрос:
У меня есть следующая модель:
struct MyModel: Codable, Hashable {
let data: ASubModelData
let error: Bool?
let error_message: String?
let error_code: Int?
}
и я пытаюсь создать переменную в представлении, чтобы затем присвоить ей значения следующим образом:
@State var myVar: MyModel? = MyModel()
но это приводит к ошибке:
Insert 'from: <#Decoder#>'
Если бы я нажал «исправить», это было бы похоже на:
@State var myVar: MyModel? = MyModel(from: Decoder)
и это неправильно, это также дает ошибку, как я могу создать переменную, которая является пустым экземпляром этой модели?
Ответ №1:
У вас struct
нет другого инициализатора, кроме того, который предназначен для декодирования. Вы должны добавить инициализатор init()
:
init() {
data = ?
error = nil
error_message = nil
error_code = nil
}
Однако, поскольку MyModel
содержит свойства, которые не являются необязательными, вероятно, было бы лучше инициализировать его с помощью nil
:
@State var myVar: MyModel?
Комментарии:
1. по-видимому, было достаточно только второй части 🙂 Спасибо