Я пытаюсь добиться некоторого полиморфизма при построении видов в swiftui:
Примерно так:
protocol Builder {
func viewForItem() -> View
}
extension ItemPhoto: Builder {
public func viewForItem() -> View {
Image("image.png")
}
}
Я получаю сообщение об ошибке:
Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements
Если я попробуйте использовать associatedtype
У меня есть следующая проблема
protocol Builder {
associatedtype T
func viewForItem() -> T
}
extension ItemPhoto: Builder {
typealias T = Image
public func viewForItem() -> Image {
Image("image.png").scaledToFit()
}
}
Если я хочу сделать любое представление здания, я получаю ошибку
Cannot convert return expression of type 'some View' to return type 'Image'