У меня определена MyModel для соответствия протоколу идентификации. Однако, когда я выбираю вариант myModel внутри MyCell, типом является MyModel, а не MyModel: опознаваемый, и сообщение об ошибке, которое я получаю из-за этого, выглядит следующим образом:
Ссылка на инициализатор 'init (_: columns: columnsInLandscape: vSpacing: hSpacing: vPadding: hPadding: content :) 'в' QGrid 'требует, чтобы' MyModel 'соответствовал' Identifiable '
Как мне сделать экземпляр MyModel соответствующим протоколу Identifiable ?
import SwiftUI
import QGrid
class MyModel: Identifiable {
var id: UUID
typealias ID = UUID
let name: String
init(id: UUID, name: String) {
self.id = id
self.name = name
}
}
struct ContentView: View {
let array = [MyModel(id: UUID(), name: "Name #1"), MyModel(id: UUID(), name: "Name #2")]
var body: some View {
QGrid(array, columns: 3) { //compiler error appears here
value in
MyCell(myModel: value)
}
}
}
struct MyCell: View {
let myModel: MyModel //if I change this to MyModel & Identifiable I get the error "Protocol 'Identifiable' can only be used as a generic constraint because it has Self or associated type requirements"
var body: some View {
Text("\(myModel.name)")
}
}