Короткий ответ: нет .
Более длинный ответ заключается в том, что Swift (язык) позволяет это, поскольку нет способа запретить принятие протокола классы (хотя вы можете заставить протокол быть принятым только классами, это противоположно тому, что потребуется). Однако SwiftUI полагается, что представления являются structs
для своих внутренних методов обновления представлений, так что нет. Это связано с тем, почему вам нужно использовать @State
для типов значений (потому что он наблюдает, когда значение изменяется, и если использовался ссылочный тип, представление будет обновляться только при переназначении объекта, а не при изменении каких-либо свойств) и используйте @ObservedObject
для ссылочных типов (а ObservableObject
s должно быть class
es.