swift - 来自已定义协议的通用结构
问题描述
我知道这对很多人来说可能听起来很基础,但是我今天的大脑在 2 个气缸上工作,我无法弄清楚......
我有这个观点完美地工作。
struct MyView: View {
@ObservedObject private var myModel:MyModel
init(myModel:MyModel) {
self.myModel = myModel
}
现在我有第二种模型。我需要修改MyView
为通用的。
所以我首先创建了一个协议,因为两个模型的变量和函数调用将是相同的,并将这些协议分配给两个模型。
现在我需要将视图修改为类似
struct MyView: View {
@ObservedObject private var myModel:Any
init(myModel:Any) {
self.myModel = myModel
}
但我确信这不是这样做的方法。
或类似的东西
struct MyView<T>: View {
@ObservedObject private var myModel:T
init(myModel:T) {
self.myModel = myModel
}
但我无法弄清楚确切的语法。
谢谢
解决方案
您只是缺少T
作为 ObservableObject 的要求:
struct MyView<T: ObservableObject>: View { ... }
推荐阅读
- javascript - 有没有办法让角材料表保持扩大?(带有 tr 和 td,不是 mat-row 标签)
- python - 如何在类装饰器中添加属性?
- wordpress - 在多站点中添加新站点时添加内容时出现问题
- html - 是否可以为 Facebook 的共享链接对话框指定语言?
- java - Elasticsearch 找不到 JAVA_HOME 或 Java,即使它们都存在
- python - 留下最少的小费
- java - 为什么 Java 处理浮点不精度如此奇怪?
- excel - 创建动态反向查找函数的问题
- c++ - 未定义对“运算符删除(无效*,无符号长)”的引用
- android - 反应原生构建错误:包android.support.annotation不存在