У меня протокол Transaction
. Реализовано несколькими структурами: Income
, Expense
, et c ..
Затем у меня есть общий c TransactionMananger
класс:
class TransactionManager<T:Transaction>: ObservableObject {
private let key:String = String(describing: T.self)
@Published var items: [T]
// ...
Это работает хорошо.
Теперь я пытаюсь создать представление, которое будет получать TransactionManager
любого типа (доходы, расходы, что угодно).
struct TransactionView: View {
@ObservedObject var manager: TransactionManager<???>
var body: some View {
Text("Hello")
}
}
Я не знаю как указать это должно быть любое Transaction
. Когда я использую Transaction
, компилятор говорит:
Значение типа протокола «Транзакция» не может соответствовать «Транзакции»; только типы struct / enum / class могут соответствовать протоколам