Я получаю сообщение об ошибке «StreamingModel» не конвертируется в «T.EAModel» в следующем фрагменте кода. Может кто-нибудь помочь мне понять ошибку.
public struct GraphViewsMainSUI<T> : View where T: GraphViewRepresentableProtocol {
@ObservedObject public var graphToggle: GraphToggle
@ObservedObject public var model: StreamingModel
public var body: some View {
HStack {
VStack {
Text("Select Graphs").font(.headline)
GroupBox{
GraphChecksSUI(toggleSets: $graphToggle.toggleSets)
}
}.padding(.trailing, 35)
T(model: model, toggleSets: $graphToggle.toggleSets) <<<< COMPILE ERROR HERE
}.frame(minWidth: 860, idealWidth: 860, maxWidth: .infinity, minHeight: 450, idealHeight: 450, maxHeight: .infinity).padding()
}
}
public protocol GraphViewRepresentableProtocol: NSViewRepresentable {
associatedtype EAModel
init(model: EAModel, toggleSets: Binding<[GraphToggleSet]>)
}
Структура, которую я использую для типа T, который соответствует GraphViewRepresentable, следующая:
public struct GraphViewRepresentable: NSViewRepresentable, GraphViewRepresentableProtocol {
public var model: StreamingModel
@Binding public var toggleSets: [GraphToggleSet]
public init(model: StreamingModel, toggleSets: Binding<[GraphToggleSet]>) {
self.model = model
self._toggleSets = toggleSets
}
...
}
В протоколе связанный типне имеет ограничений, поэтому я не понимаю, почему компилятор не устанавливает тип EAModel в StreamingModel.