【发布时间】:2021-02-14 12:56:07
【问题描述】:
我正在尝试创建一个名为 Lesson 的类。每个课程对象应包含不同的课程页面(视图),以便每个课程卡片可以导航到不同的页面。
课程代码如下:
class Lesson<T: View>: Identifiable {
let id = UUID()
var lessonName: String
var lessonPage: T
init(lessonName: String,
lessonPage: T = DefaultLessonPageView() as! T) {
self.lessonName = lessonName
self.lessonPage = lessonPage
}
}
问题是编译下面的代码时出错:
struct ButtonPageView: View {
var lesson: Lesson<View>
var body: some View {
NavigationLink(destination: lesson.lessonPage()) {
some view here
}
}
}
错误如下:
协议类型'View'的值不能符合'View';只有结构/枚举/类类型可以符合协议
我应该怎么做才能解决这个问题?
【问题讨论】: