Я пытаюсь наблюдать изменения значения bool
, содержащегося в ObservableObject
, которое является значением в случае enum
. Вот пример того, чего я пытаюсь достичь, но при текущем подходе я получаю сообщение об ошибке Use of unresolved identifier '$type1Value'
.
import SwiftUI
import Combine
class ObservableType1: ObservableObject {
@Published var isChecked: Bool = false
}
enum CustomEnum {
case option1(ObservableType1)
}
struct Parent: View {
var myCustomEnum: CustomEnum
var body: AnyView {
switch myCustomEnum {
case .option1(let type1Value):
AnyView(Child(isChecked: $type1Value.isChecked)) // <- error here
}
}
}
struct Child: View {
@Binding var isChecked: Bool
var body: AnyView {
AnyView(
Image(systemName: isChecked ? "checkmark.square" : "square")
.onTapGesture {
self.isChecked = !self.isChecked
})
}
}
Я пытаюсь обновить значение isChecked
из интерфейса, но поскольку я хотите иметь ObservableObject
, который содержит свойство в enum
, например, CustomEnum
, не знаю, как это сделать и возможно ли это. Я выбрал перечисление, потому что будет несколько вариантов перечисления с разными значениями ObservableObject
, а Parent
будет генерировать разные подпредставления в зависимости от параметра CustomEnum
. Если это имеет какое-либо значение, Parent
получит значение myCustomEnum
из Array
из CustomEnum
значений. Это вообще возможно? Если нет, то какие у меня есть альтернативы? Спасибо!